如何在pyximport.install()之后导入h5py

时间:2014-09-01 19:44:34

标签: python h5py

我正在尝试导入h5py。它正常工作。但是当我做pyximport.install() 它停止工作。如何解决这个问题?

示例:

import pyximport
x = pyximport.install()
import h5py

这给了我一个很长的错误。另外我不能pyximport.uninstall(*x)因为pyximport.install()由其他模块完成。有没有办法解决这个问题?

提前致谢。

1 个答案:

答案 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