我希望创建一个setup.py脚本,对一个包含多个子模块的Python程序进行打包,并且这些子模块需要依赖于cython和f2py。我尝试使用setuptools和numpy.distutils,但是一直没有成功:
使用setuptools
使用setuptools,我能够编译我的cython扩展(并创建其余包的安装),但无法弄清楚如何使用setuptools来生成f2py扩展。经过广泛搜索,我只找到了相当古老的类似于这样的消息,指出必须使用numpy.distutils来编译f2py模块。
使用numpy.distutils
使用numpy.distutils,我能够编译我的f2py扩展(并创建其余包的安装),但无法弄清楚如何让numpy.distutils编译我的cython扩展。因为它总是尝试使用pyrex进行编译(而我正在使用特定于cython的扩展)并在最近一年内做过搜索,想要获取用于cython文件的numpy.distutils -至少截至一年前-他们建议对numpy.distutils应用monkey patch。看起来应用这样的monkey patch也会限制传递给Cython的选项。
我的问题是:编写依赖于f2py和cython两者的软件包的setup.py脚本的推荐方法是什么?还需要对numpy.distutils应用补丁吗?