首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImportError: DLL加载失败,而文件位于工作目录中

ImportError: DLL加载失败,而文件位于工作目录中
EN

Stack Overflow用户
提问于 2019-01-25 13:42:43
回答 3查看 4.7K关注 0票数 4

我试着用miniconda3在jupyter笔记本电脑中导入scanpy以供使用。但是,当我尝试导入hdf5extension时,它提供了一个关于hdf5extension dll的hdf5extension。但是,当我查看包表的目录时,我可以看到两个名为hdf5.dll和hdf5extension.cp37-win_amd64.pyd (https://gyazo.com/a7d5a9d7d28756a8d82bc060b33b91ca)的文件。我假设这些是应该导入的文件,但我不明白导入有什么问题。

我以前在这个系统上使用了scanpy,但是在我通过conda安装h5py之后(不知道如果您通过conda安装h5py,就会自动包含h5py)。因此,首先我卸载了h5py,它没有工作。卸载和重新安装miniconda3两次,但也无法工作。手动设置$PATH变量也没有帮助。

因此,我查看了在跟踪中引用的file.py,并认为表目录中应该有一个文件。我发现了这些文件,并认为它们的命名可能是错误的,所以我尝试更改名称,这也不起作用。将python从3.7.1降到3.6.6没有工作,也没有在conda中使用python 3.6.6创建一个新的env,并安装所有必需的包。

在Windows 7 64位上工作,使用conda 4.5.12和miniconda3安装程序。

代码语言:javascript
复制
> Python 3.6.6 | packaged by conda-forge | (default, Jul 26 2018, 11:48:23) [MSC v
.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

> import scanpy

> Traceback (most recent call last):

> File "", line 1, in File "C:\Miniconda3\envs\py36\lib\site-packages\scanpy\__init__.py", line 11, in 

> from . import tools as tl

> File "C:\Miniconda3\envs\py36\lib\site-packages\scanpy\tools\__init__.py", line 12, in <module>

> from .sim import sim

> File "C:\Miniconda3\envs\py36\lib\site-packages\scanpy\tools\sim.py", line 19, in <module>

> from .. import readwrite

> File "C:\Miniconda3\envs\py36\lib\site-packages\scanpy\readwrite.py", line 9,
in <module>

> import tables

> File "C:\Miniconda3\envs\py36\lib\site-packages\tables\__init__.py", line 131, in <module>

> from .file import File, open_file, copy_file

> File "C:\Miniconda3\envs\py36\lib\site-packages\tables\file.py", line 35, in <module>

> from . import hdf5extension

> ImportError: DLL load failed: The specified procedure could not be found.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-30 13:20:30

我和你有同样的问题,两次。

这似乎是一个特定于Windows的问题。我的第一个解决方案是更新我的Visual版本的,它附带了C构建工具,这些工具可能需要以某种方式运行scanpy (?)。这件事挺好用了一段时间。

几周后,我又有了同样的ImportError。这一次唯一有帮助的是使用了h5py (2.8)的旧版本。设置一个新的Virtual或重置Miniconda包没有帮助,指定hdf5-DLL保存位置。作为一个windows变量也没有帮助。

我的建议是,hdf5 2.9版中的新的h5py库还不能与Microsoft当前的C编译器兼容。

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2021-03-17 16:30:52

我遇到了一个类似的问题,我花了半天时间在这个问题上。到目前为止,问题发生在tables包中,至少对我来说是这样。

tables包坏了。我通过conda卸载了 it,删除了剩余目录(必要时,所有以tables命名的via;路径可以从err获得),然后通过'pip‘重新安装,因为我的'conda’通道没有它。

有趣的是,'pip‘使我的h5py(2.8.0)过时了,并建议我将其更新为2.10.0,用于scanpy。(实际上,scanpy可以很好地工作)

如果你这样做了,恭喜,tables又坏了。h5py(2.10.0)似乎也会安装tables(但在win10中有错误),此外,如果获得h5py的ImportError: DLL load failed,还应该使用类似的管道来重新安装它(手动删除)。

总之,scanpy在win10 scanpy==1.7.1 h5py==2.8.0 tables==3.4.4中工作。如果您最终重新安装了h5py,也许tables 2.10.0也可以工作。

票数 1
EN

Stack Overflow用户

发布于 2020-03-30 08:49:34

我也遇到了同样的问题,我卸载了几次,我的问题如下:

代码语言:javascript
复制
>>> import scanpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\software\Anaconda\lib\site-packages\scanpy\__init__.py", line 32, in <module>
    from . import tools as tl
  File "C:\software\Anaconda\lib\site-packages\scanpy\tools\__init__.py", line 12, in <module>
    from ._sim import sim
  File "C:\software\Anaconda\lib\site-packages\scanpy\tools\_sim.py", line 24, in <module>
    from .. import readwrite
  File "C:\software\Anaconda\lib\site-packages\scanpy\readwrite.py", line 10, in <module>
    import tables
  File "C:\Users\xiaokang\AppData\Roaming\Python\Python36\site-packages\tables\__init__.py", line 99, in <module>
    from .utilsextension import (
ImportError: DLL load failed: 找不到指定的模块。

最后,我卸载了表包,并再次安装了表包,这样我就可以正常工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54366505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档