f2py
F2PY: Fortran to Python interface generator
http://cens.ioc.ee/projects/f2py2e/
をdebian/etchで試す.
Fortran90ソースをIntel Fortran Compiler 8.0でコンパイルし,Python2.4からモジュールとして呼び出すことができた.配列の受け渡しやコールバックは未テスト.

% f2py --fcompiler=intel -c -m foo foo.f90
自動的にgccとifortを実行して,コンパイルから共有オブジェクトファイルfoo.so(これをPythonはモジュールとして読み込む)まで作る.ifortはホームディレクトリに展開してあるが,PATHが通っているためか指定しなくても見つけてくれた.

% python
>>> import foo
>>> foo.bar(5)
25.0

など.

当初,f2pyによるモジュール作成時,以下のようにifortの段階でコマンドラインオプションのエラーで止まってしまっていた.

:
compiling Fortran sources
Fortran f77 compiler: /home/m/opt/intel/intel_fc_80/bin/ifort -72 -w90 -w95 -KPIC -cm -O3 -unroll -tpp7 -xB -xM -arch SSE2
Fortran f90 compiler: /home/m/opt/intel/intel_fc_80/bin/ifort -FR -KPIC -cm -O3 -unroll -tpp7 -xB -xM -arch SSE2
Fortran fix compiler: /home/m/opt/intel/intel_fc_80/bin/ifort -FI -KPIC -cm -O3 -unroll -tpp7 -xB -xM -arch SSE2
compile options: '-I/tmp/tmpXcGISQ/src.linux-i686-2.4 -I/usr/lib/python2.4/site-packages/numpy/core/include -I/usr/include/python2.4 -c'
ifort:f90: foo.f90
ifort: Command line warning: overriding '-xB' with '-xM'
ifort: Command line error: Unrecognized keyword 'SSE2' for option '-arch'
ifort: Command line warning: overriding '-xB' with '-xM'
ifort: Command line error: Unrecognized keyword 'SSE2' for option '-arch'
error: Command "/home/m/opt/intel/intel_fc_80/bin/ifort -FR -KPIC -cm -O3 -unroll -tpp7 -xB -xM -arch SSE2 -I/tmp/tmpXcGISQ/src.linux-i686-2.4
-I/usr/lib/python2.4/site-packages/numpy/core/include
-I/usr/include/python2.4 -c -c foo.f90 -o /tmp/tmpXcGISQ/foo.o" failed with exit status 1
Exit 1

このときのf2pyはpython-numpyパッケージに付属のもの(f2py version 2_3198)だったが,python-f2pyパッケージ(f2py version 2.45.241_1926)を導入したところ,問題なく動いた.なお,このときpython-numpyがremoveされ,python-scipyが導入された.この辺の開発状況はよくわからないが,debian/etchのパッケージとしてはpython-scipyがpython-numpyを包含もしくは上位互換なのだろうか…??
[PR]
by edogawadai_bio | 2006-11-20 22:20 | comp
<< memo MySQL 圭 >>