【发布时间】:2011-10-28 16:24:56
【问题描述】:
我想为一个 python 包创建一个 setup.py 脚本,其中包含几个依赖于 cython 和 f2py 的子模块。我曾尝试使用 setuptools 和 numpy.distutils,但到目前为止都失败了:
使用设置工具
我能够使用 setuptools 编译我的 cython 扩展(并为包的其余部分创建安装)。但是,我一直无法弄清楚如何使用 setuptools 来生成 f2py 扩展。经过大量搜索,我只找到了相当古老的messages like this one,指出必须使用 numpy.distutils 编译 f2py 模块。
使用 numpy.distutils
我能够使用 numpy.distutils 编译我的 f2py 扩展(并为包的其余部分创建安装)。但是,我一直无法弄清楚如何让 numpy.distutils 编译我的 cython 扩展,因为它最近总是尝试使用 pyrex 来编译它(而且我正在使用特定于 cython 的扩展)。我已经进行了搜索以弄清楚如何为 cython 文件获取 numpy.distutils,并且 - 至少在一年前 - 他们建议将 monkey patch 应用于 numpy.distutils。似乎应用这样的猴子补丁也限制了可以传递给 Cython 的选项。
我的问题是:为依赖于 f2py 和 cython 的包编写 setup.py 脚本的推荐方法是什么?对 numpy.distutils 应用补丁真的是可行的方法吗?
【问题讨论】: