f2pyで上手くコンパイルできない。

 fatal error: Python.h: そのようなファイルやディレクトリはありません

 #include "Python.h"

          ^~~~~~~~~~

このようなエラーが出た場合は、

aptやzypperやyumコマンドで

 zypper install python3-devel

sudo yum install python3-devel

sudo apt install libpython3.6-dev

pythonの開発バージョンをインストールする必要がある。

 

1、(単純ミス)anaconda環境でないPCでf2pyをコンパイルしてpython3で実行しようとすると、ImportError: dynamic module does not define module export function (PyInit_output)みたいのが出てインポートできなかったのでその対処をメモ

原因は、python2のf2pyでコンパイルしていたからだった。。。

python3のf2pyでコンパイルしたい時は、f2py3というコマンドを使用するみたい。

そういえば、pipとかもpip3だもんね、、、python2と3が互換性がないのまじでややこしい。

 

2.(PCの仕様)f2py3コマンドが使えない場合がある。モジュールとして実行する必要があり、以下で実行する必要がある。

python -m numpy.f2py -m test -c test.f90

参考

https://runebook.dev/ja/docs/numpy/f2py/usage