使用pyximport时编译.pxd文件

时间:2017-02-13 01:31:06

标签: python-3.x cython

我正在使用.pxd文件扩充Python模块,以便我可以使用它pure Python mode进行调试(使用pudb)。所以我有两个文件:

mymodule.py
mymodule.pxd

我正在以标准方式使用pyximport

import pyximport; pyximport.install()

pyximport似乎没有尝试编译它。如果我删除了.pxd文件并将我的.py文件重命名为.pyx,那么它就可以了。那么,我如何使用pyximport但仍然能够在纯Python模式下运行?理想情况下,我希望能够简单地注释掉pyximport,以便切换到纯python模式。

1 个答案:

答案 0 :(得分:0)

尝试pyximport.install(pyimport=True),如果已安装,您可以在ipython中按类型pyximport.install?查看此功能的完整文档。或者查看来源:https://github.com/cython/cython/blob/master/pyximport/pyximport.py

警告:编译pyximport.install(pyimport=True)后导入的任何.py文件,这可能会导致一些错误,例如:__ init__.py被编译为空pyd,然后导入将失败

pyximport对于一些简单的测试很有用,对于复杂的构建来说非常棘手,在实际项目中应该避免使用它。