8

解決策を探すために 1 時間近くグーグルで検索しましたが、numpy.distutils のドキュメントは非常にまばらです。

f2py でラップされたモジュールがあります。基本的に次の 3 つのファイルで構成されます。

a.f90
a.pyf
lib.a <- this is a static library that contains most of the computational code

モジュールは、次のシェル スクリプト コマンドで適切にコンパイルされます。

f2py --build-dir temp -c a.pyf a.f90 lib.a --fcompiler=gnu95   
--fcompiler-flags="Zillions of compiler options"

その結果、python モジュール a.so ができました (名前は .pyf ファイルで指定されます)。

numpy.distutils (またはその他の Python 指向の構築ツール) を使用してこれを行うにはどうすればよいですか? あまり重要でない質問は、lib.a からの依存関係を含めることもできますか (必要に応じて再構築しますか?)

4

1 に答える 1

5

ですから、1時間のグーグルではなく、2日かかりましたが、ついにそれを行う方法を見つけました. 希望、それは誰かに役立つでしょう。

  def configuration(parent_package='',top_path=None):
      from numpy.distutils.misc_util import Configuration, get_info
      config = Configuration('a', parent_package, top_path)
      lib = ['./libdir/lib.a']
      src = ['a.f90','a.pyf']
      inc_dir = ['libdir']              
      config.add_extension('mya',sources=src,depends=lib_tt,
                      include_dirs=inc_dir,extra_objects="lib.a")
      #The main trick was to use extra_objects keyword
      return config

  if __name__ == '__main__':
      from numpy.distutils.core import setup
      setup(**configuration(top_path='').todict())
于 2012-08-27T19:22:31.360 に答える