我正在尝试导入h5py。它正常工作。但是当我做pyximport.install() 它停止工作。如何解决这个问题?
示例:
import pyximport
x = pyximport.install()
import h5py
这给了我一个很长的错误。另外我不能pyximport.uninstall(*x)
因为pyximport.install()
由其他模块完成。有没有办法解决这个问题?
提前致谢。
答案 0 :(得分:2)
简短的回答:你做不到。在调用pyximport.install之前导入h5py,或者在安装时用适当的cython编译替换pyximport.install。
答案很长: pyximport.install仅用于开发和测试目的。它有一些功能,例如它寻找要编译的代码。有些库,比如h5py也在使用cython,所以pyximport.install会尝试编译它。 因此,一种解决方案是在调用pyximport.install之前导入h5py。
但正如我之前提到的,pyximport.install是为在开发期间动态编译cython代码而设计的。一旦代码或多或少稳定,在安装时应该通过适当的编译来替换这种动态编译,例如参见http://docs.cython.org/src/quickstart/build.html#building-a-cython-module-using-distutils