在Python中打包遗留的FORTRAN。 可以使用`setuptools`和`numpy.distutils`吗?

我正在尝试为我的领域中的一些stream行的Fortran代码做一个python包分发。 我希望它使用setup.py文件最标准的方法。 相关问题有助于学习如何打包Fortran扩展 。

当使用这种方法时,我注意到混合setuptoolsnumpy.distutils时有一些混淆的行为。 混合两者是不好的做法? 截至2015年,似乎最好尽可能使用setuptools

不过,我想用与numpy.兼容的方式构buildFortran扩展numpy. 所以我想从numpy.distutils导入来获得Extensionsetup

我正在使用以下基本方法:

 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}) 

这似乎工作,但我有问题。

  1. 混合setuptoolsnumpy.distribute通常是一个好的做法吗?
  2. 我input的订单是否重要? 我应该总是先导入setuptools
  3. 有没有官方的最新教程打包numpy扩展? 也许甚至有一些讨论Fortran扩展?

一些链接

http://www.fortran90.org/src/best-practices.html#interfacing-with-python

Interesting Posts