小编Wil*_*tin的帖子

在Python中打包遗留Fortran.可以使用setuptools和numpy.distutils吗?

我正在尝试为我的领域中的一些流行的Fortran代码进行python包分发.我希望它对setup.py文件使用最标准的方法.相关的qustion有助于学习如何包装Fortran扩展.

当使用这种方法,我混合时发现一些容易混淆的行为setuptoolsnumpy.distutils.将两者混合是不好的做法吗?截至2015年,似乎最好setuptools尽可能多地使用.

但是,我想以Fortran一种兼容的方式构建扩展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})
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但我有疑问.

  1. 混合setuptools和一般是好的做法numpy.distribute吗?
  2. 我导入它们的顺序是否重要?我应该setuptools先进口吗?
  3. 是否有正式的包装扩展教程numpy?也许甚至有一些讨论Fortran扩展?

一些链接

https://www.youtube.com/watch?v=R4yB-8tB0J0

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

python fortran numpy setuptools f2py

52
推荐指数
1
解决办法
1784
查看次数

标签 统计

f2py ×1

fortran ×1

numpy ×1

python ×1

setuptools ×1