Python Numpy distutils howto
我花了将近一个小时在谷歌上搜索解决方案,但是numpy.distutils的文档非常稀少 我有一个f2py包装的模块。它基本上由3个文件组成:Python Numpy distutils howto,python,numpy,distutils,f2py,Python,Numpy,Distutils,F2py,我花了将近一个小时在谷歌上搜索解决方案,但是numpy.distutils的文档非常稀少 我有一个f2py包装的模块。它基本上由3个文件组成: a.f90 a.pyf lib.a <- this is a static library that contains most of the computational code 因此,我有了python模块a.so(名称在.pyf文件中指定) 如何使用numpy.distutils(或其他一些面向python的构建工具)实现这一点? 一个不太
a.f90
a.pyf
lib.a <- this is a static library that contains most of the computational code
因此,我有了python模块a.so(名称在.pyf文件中指定)
如何使用numpy.distutils(或其他一些面向python的构建工具)实现这一点?
一个不太重要的问题是,我是否也可以包括lib.A的依赖性(并在必要时重建它?因此,这不是一个小时的谷歌搜索,而是花了两天的谷歌搜索,但我终于找到了实现这一点的方法。 希望,这将有助于某人
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())
最后一部分:要从
lib.a
添加依赖项,您必须创建一个单独的包(如果我理解您的意思),然后将其添加到您的setup.py
的依赖项列表中。@rubik Ok,但是这个setup.py会是什么样子呢?您知道如何在numpy.distutils中指定--fcompiler
选项吗?
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())