gpt4 book ai didi

python - Numpy distutils 指南

转载 作者:太空狗 更新时间:2023-10-29 21:06:01 34 4
gpt4 key购买 nike

我花了将近一个小时在谷歌上搜索解决方案,但 numpy.distutils 的文档非常少。

我有一个 f2py 封装的模块。它主要由 3 个文件组成:

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

使用以下 shell 脚本命令可以很好地编译该模块。

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 的依赖(并在必要时重建它?)

最佳答案

所以,这不是 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())

关于python - Numpy distutils 指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12115990/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com