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

标签 python h5py

我正在尝试导入 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/

相关文章:

python - 使用 h5py 删除 hdf5 数据集

Python 2.7 : Strange Unicode behavior

python - keras 预测错误

python - df.transform 中的 ValueError(lambda x : 0 if (x == 0) else (-np. log(-x) if x < 0 else np.log(x)))

python - h5py:存储字符串列表

python - 以 h5py 对象作为实例变量的令人费解的赋值行为

python - 如何从预训练模型保存的h5文件中找到层数?

python - 不能直接通过 `locals()`在python中设置局部变量

python - 获取使用管道的系统命令的输出 (Python)