LoginSignup
4
5

More than 1 year has passed since last update.

M1 Silicon MacでFortran moduleをPythonで用いるための方法

Last updated at Posted at 2021-05-06

0. 前提として...

  • gfortranの最新版が使用できるようになっている(arm64版)
  • ターミナルから正常にコマンドを実行できる

であるとして以下説明をするので、まずはこの2点に関して確認をしていただきたい。gfortranに関してhomebrewが使用できるなら、

$ brew install gfortran

をターミナルで実行すれば問題ない。ただし、ターミナルがRosetta上でないことを確認しておかなければならない。これは、

$ uname -m

をターミナルで実行して

arm64

と表示されればOK。もし、

x86_64

と表示された場合、Rosetta上で動いているのでその時は

$ arch -arm64 zsh

を実行して必ず、armアーキテクチャ上で実行しているかに注意しておきたい。

1. miniforgeの導入

私がf2pyを使えなかった主たる原因はf2pyでコンパイルされた.soファイルとPythonのアーキテクチャが異なっていることにあった。そこで、arm64にNativeなPythonをインストールする必要がある。しかもなぜかminiforgeを通す必要がある(Anacondaはまだサポートされていない?)。
結構重要な工程を一つ飛ばしていたので追記しておきます。(追記:2021/12/16)

conda-forge/miiniforge
からminiforgeをダウンロード。

次のコマンドを実行することでまず、miniforgeをインストールする。

$ bash Miniforge3-MacOSX-arm64.sh


PythonをMacで使用するために、「Python Mac インストール」とググると「homebrewでインストールしましょう」や「Anacondaを使うと便利です」など言われると思うが、決して使ってはいけない!!(2021年5月6日現在)
特にPyenvを使用している場合はすぐに

$ brew uninstall pyenv-virtualenv
$ brew uninstall pyenv

を実行していただきたい(競合が起きる可能性がある)。

2. ARM64にNativeなPythonの導入

無事にminiforgeがインストールできたところで、Pythonをインストールする。miniforgeは

$ conda

コマンドで動かせる。pythonをインストールするために

$ conda install python=x.x

を実行する。ARM64に対応しているPythonが3.9以降のものなので最新版をインストールする。
以後ライブラリを適宜インストールする。miniforgeでインストールできるものは

$ conda install (ライブラリ名)

でインストール可能。f2pyを使用するためにnumpyは必須。

3. 環境の確認

ターミナルで

$ python -V

を実行し

Python 3.9.2

など、バージョン3.9以降になっていればOK.念のために

$ file $(which python)

を実行して、

/Users/(ユーザー名)/miniforge3/bin/python: Mach-O 64-bit executable arm64

のようになっていればARM64対応のPythonがインストールできている事が確認できる。これ以降f2pyを使用するための手順は従来の方法と変わらないので、Qiita:Pythonで簡単にFortranのsubroutineを用いる方法などを参考に各自確かめて頂きたい。

4. 参考

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5