我有一个python包“trees”,其中包含myscript.py文件,该文件使用了fortran子例程。
通常我用
编译fortran模块f2py -c -m calctree calctree.f90
然后我就可以了
from trees import myscript
myscript.mysub()
使用calctree.so
如果我通过运行
打包distutilspython ./setup.py sdist
其中setup.py的内容为
#! /usr/bin/env python
from distutils.core import setup
setup(name='trees',
version='0.1',
packages=['trees']
)
并在MANIFEST.in文件中指定“include trees / calctree.f90”,我可以包含.f90文件,但我不知道如何在用户的计算机上使用f2py进行编译,并且有。所以文件放在适当的地方。有人可以帮忙吗?
谢谢!
答案 0 :(得分:1)
您想使用具有自己的设置功能的numpy.distutils.core模块。 你的setup.py看起来应该是这样的(假设fortran文件在名为trees的目录中),
import numpy.distutils.core
import setuptools
# setup fortran 90 extension
#---------------------------------------------------------------------------
ext1 = numpy.distutils.core.Extension(
name = 'calctree',
sources = ['trees/calc_tree.f90'],
)
# call setup
#--------------------------------------------------------------------------
numpy.distutils.core.setup(
name = 'trees',
version = '0.1',
packages = setuptools.find_packages(),
package_data = {'': ['*.f90']},
include_package_data = True,
ext_modules = [ext1],
)
这至少应该是一个开始。