在Python中打包遗留的FORTRAN。 可以使用`setuptools`和`numpy.distutils`吗?
我正在尝试为我的领域中的一些stream行的Fortran代码做一个python包分发。 我希望它使用setup.py
文件最标准的方法。 相关问题有助于学习如何打包Fortran扩展 。
当使用这种方法时,我注意到混合setuptools
和numpy.distutils
时有一些混淆的行为。 混合两者是不好的做法? 截至2015年,似乎最好尽可能使用setuptools
。
不过,我想用与numpy.
兼容的方式构buildFortran
扩展numpy.
所以我想从numpy.distutils
导入来获得Extension
和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
通常是一个好的做法吗? - 我input的订单是否重要? 我应该总是先导入
setuptools
? - 有没有官方的最新教程打包
numpy
扩展? 也许甚至有一些讨论Fortran扩展?
–
一些链接
http://www.fortran90.org/src/best-practices.html#interfacing-with-python