我正在尝试导入 h5py。它工作正常。但是当我执行 pyximport.install() 时 它停止工作。如何解决这个问题?
示例:
import pyximport
x = pyximport.install()
import h5py
这给了我一个很长的错误。另外,我无法执行 pyximport.uninstall(*x) ,因为 pyximport.install() 是由其他模块完成的。有什么办法可以解决这个问题吗?
提前致谢。
最佳答案
简短回答:你不能。在调用 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
关于python - 如何在 pyximport.install() 之后导入 h5py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25612121/