我试着用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安装程序。
> 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.发布于 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编译器兼容。
希望这能有所帮助!
发布于 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也可以工作。
发布于 2020-03-30 08:49:34
我也遇到了同样的问题,我卸载了几次,我的问题如下:
>>> 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: 找不到指定的模块。最后,我卸载了表包,并再次安装了表包,这样我就可以正常工作了。
https://stackoverflow.com/questions/54366505
复制相似问题