我正在尝试为我的领域中的一些流行的Fortran代码进行python包分发。我希望它使用setup.py
文件的最标准方法。相关的qustion有助于学习how to wrap Fortran extensions。
使用这种方法时,我注意到在混合setuptools
和numpy.distutils
时出现了一些令人困惑的行为。将两者混合是不好的做法吗?截至2015年,似乎最好尽可能使用setuptools
。
但是,我希望以与Fortran
兼容的方式构建numpy.
个扩展名。所以我想从numpy.distutils
导入到Extension
和{{ 1}}。
我使用以下基本方法:
setup
这似乎有效,但我有疑问。
from setuptools.command.develop import develop
from numpy.distutils.core import Extension, setup
ext_modules=[Extension("my_package.fortran_mod", sources=['src/fortran_mod.f'])]
class MyDevelop(develop):
def run(self):
my_script()
develop.run(self)
setup(
...
ext_modules=ext_modules,
cmdclass={'develop':MyDevelop})
和setuptools
numpy.distribute
吗?setuptools
包装扩展的官方最新教程?也许甚至有一些讨论Fortran扩展?https://www.youtube.com/watch?v=R4yB-8tB0J0
http://www.fortran90.org/src/best-practices.html#interfacing-with-python
答案 0 :(得分:2)
这似乎有效,但我有疑问。
- 混合setuptools和numpy.distribute是一般的好习惯吗?
- 我导入的订单是否重要?我应该先导入setuptools吗?
- 是否有关于numpy包装扩展的官方最新教程?也许甚至有一些讨论Fortran扩展?
醇>