导入错误:导入 defs 时 DLL 加载失败:找不到指定的过程

问题描述 投票:0回答:3

我已经使用

conda install h5py
安装了h5py。然而,当我
import h5py
出现上述错误。这是整个错误:

Traceback (most recent call last):
  File "training.py", line 12, in <module>
    import h5py
  File "C:\Users\colin\anaconda3\envs\py38\lib\site-packages\h5py\__init__.py", line 33, in <module>
    from . import version
  File "C:\Users\colin\anaconda3\envs\py38\lib\site-packages\h5py\version.py", line 15, in <module>
    from . import h5 as _h5
  File "h5py\h5.pyx", line 1, in init h5py.h5
ImportError: DLL load failed while importing defs: The specified procedure could not be found.

谢谢。

python anaconda h5py
3个回答
1
投票

我尝试了

h5py
hdf5
版本的不同组合,甚至是最新的版本。他们都不为我工作。所以我做了以下事情,它对我有帮助:

  • 卸载了
    h5py
    hdf5
    (
    conda uninstall
    )
  • pip 安装
    h5py
    (不是
    conda install

所以我在 conda 环境中只保留了

h5py

甚至认为它有一些缺点,如 takluyver 在他的帖子中提到的:https://github.com/conda-forge/h5py-feedstock/issues/103#issuecomment-1017537370

wheel 包(通过 pip 获得的)将 libhdf5 捆绑到 Wheel 中,因此用于构建 h5py 的 HDF5 和它在运行时找到的 HDF5 之间永远不应该不匹配。不过,这种方法也有其缺点 - 例如只读 S3 驱动程序在 conda-forge 中启用,但在 pip 中未启用,因为这意味着捆绑更多库。


1
投票

此问题仅限于来自

h5py
通道的
hdf5
/
conda-forge
组合。

Khamyl 指出了正确的开放

conda-forge
问题:https://github.com/conda-forge/h5py-feedstock/issues/103(截至撰写本文时仍处于开放状态)。

但是,无需卸载任何内容或从

conda
包管理器进行切换。

只需降级到

h5py
频道提供的最新
pkgs/main
版本,例如:

conda install h5py=3.6.0 -c pkgs/main

这也会将

hdf5
从默认通道降级为兼容版本。


0
投票

我也遇到同样的错误。

所以首先使用

pip uninstall h5py

构建 h5py 还需要几个 Python 包,但大多数情况下 pip 会自动为你在构建环境中安装这些包,因此你不需要手动处理它们。

然后再次安装但使用

pip install --no-binary=h5py h5py

然后重新启动内核。

了解更多详情https://docs.h5py.org/en/latest/build.html

© www.soinside.com 2019 - 2024. All rights reserved.