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を用いる方法などを参考に各自確かめて頂きたい。