我正在开发一个Python包,EcoPy,它主要是用纯Python编写的。主文件夹名为ecopy。有一个名为“回归”的子文件夹,其中有一个已经生成的Cython文件。主要设置.py文件包含以下代码:
ext_modules = cythonize([
Extension(
'ecopy.regression.isoFunc', ['ecopy/regression/isoFunc.pyx'], **opts),
])
当我跑的时候
^{pr2}$模块构建良好。如果我删除了isoFunc.c文件,它甚至会重新编译它。问题是Cython没有把.c文件转换成.so文件,我需要这个文件来导入函数。如果我试着在没有它的情况下加载模块
ImportError: No module named isoFunc
如果我使用命令行手动设置文件
python setup.py build_ext --inplace
Cython确实生成了.so文件。如何让它使用pip生成.so文件?我曾试图通过阅读statsmodels的代码来了解它们是如何做到的,但老实说,这对我来说是个谜。在
这就好像pip命令错过了build\u ext参数。在
我能回答这个问题,因为我才知道我是个白痴。在
使用的是PyPI中没有新版本的旧版本设置.py用赛顿密码。当我做对了
^{pr2}$在我的硬盘上使用了最新的版本,效果很好。在
小小的胜利。在
我来这里是因为我不确定pip安装我的包是否足以自动编译Cython源代码。看起来是这样,但默认情况下,pip输出似乎没有记录这一点。我注意到,
pip install -e . -v
非常清楚地说明了编译和链接步骤是否/具体执行了哪些操作:相关问题 更多 >
编程相关推荐