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