“导入火炬”给出错误“来自torch._C import *,DLL加载失败:无法找到指定的模块”

问题描述 投票:5回答:7

我目前在Anaconda上使用Python 3.5.5,我无法导入火炬。它在Spyder中给我以下错误:

Python 3.5.5 |Anaconda, Inc.| (default, Mar 12 2018, 17:44:09) [MSC v.1900 
64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.

IPython 6.2.1 -- An enhanced Interactive Python.

import torch
Traceback (most recent call last):

  File "<ipython-input-1-eb42ca6e4af3>", line 1, in <module>
    import torch

  File "C:\Users\trish\Anaconda3\envs\virtual_platform\lib\site-
  packages\torch\__init__.py", line 76, in <module>
    from torch._C import *

ImportError: DLL load failed: The specified module could not be found.

互联网上的许多建议都说工作目录不应该是火炬包所在的目录,但是我手动将我的工作目录设置为C:/ Users / trish / Downloads,我收到同样的错误。

此外,我已经尝试了以下内容:从头开始重新安装Anaconda和所有软件包,我确保我的目录中没有重复的“torch”文件夹。

请帮忙!谢谢!

python torch
7个回答
5
投票

我在Windows 10中遇到过类似的问题......

解:

  • https://anaconda.org/anaconda/intel-openmp/files下载win-64 / intel-openmp-2018.0.0-8.tar.bz2
  • 解压缩并将dll文件放入Library \ bin中 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
  • 确保您的cuda目录已添加到%PATH%环境变量中

1
投票

当我使用带有python 3.6.8的conda环境和来自通道-c pytorch的conda安装的pytorch时,我也遇到了同样的问题。

这是我的工作方式:

1个:) conda create -n envName python=3.6 anaconda

2 :) conda update -n envName conda

3 :) conda activate envName

4 :) conad install pytorch torchvision cudatoolkit=9.0 -c pytorch

然后用给定的代码测试火炬:

5 :) python -c "import torch; print(torch.cuda.get_device_name(0))"

注意:如果你有一个cuda兼容的gpu,第5步将返回你的gpu名称

总结:我刚创建了一个包含整个anaconda的conda环境,然后解决了无与伦比的conda版本的问题我从基础环境更新了新环境的conda,然后在该环境中安装了pytorch并测试了pytorch。

对于CPU版本,这里是我的另一个答案的链接:https://gist.github.com/peterjc123/6b804651288e76db7b5fabe5348e1f03#gistcomment-2842825

https://gist.github.com/peterjc123/6b804651288e76db7b5fabe5348e1f03#gistcomment-2842837


0
投票

确保为您的环境安装了正确版本的pytorch。我有同样的问题我在Windows上使用pytorch,但我安装了默认包,这是为了cuda 8.所以我重新安装了cpu的pytorch包,这是我需要的。


0
投票

运行带有纯pip的火炬时,我遇到了同样的问题,并通过切换到conda解决了这个问题。以下步骤:

  1. 从python.org卸载python 3.6(如果存在)
  2. 安装miniconda
  3. 在conda安装火炬(“conda install pytorch -c pytorch”)

pip安装问题:

import torch
  File "C:\Program Files\Python35\lib\site-packages\torch\__init__.py", line 78, in <module>
    from torch._C import *
ImportError: DLL load failed: The specified module could not be found.

切换到conda后,它工作正常。我相信conda通过安装vs_redist 2017解决了这个问题

vs2017_runtime 15.4.27004.2010 peterjc123

但我已经尝试过它没有conda它没有帮助。找不到如何检查(和调整)Python的vs_redist。


0
投票

有同样的问题并通过重新安装numpy与mkl(英特尔的数学内核库)https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy修复它

为您的机器下载正确的.whl。对我来说它是numpy-1.14.5 + mkl-cp36-cp36m-win_amd64.whl(python 3.6,windows,64位)然后使用pip安装。

pip install numpy‑1.14.5+mkl‑cp36‑cp36m‑win_amd64.whl

0
投票

我有同样的问题。在我的情况下,我不想要GPU版本的pytorch。我卸载了它。版本是pytorch:0.3.1-py36_cuda80_cudnn6he774522_2 peterjc123。

问题是cuda和cudnn。然后使用以下命令安装,现在它可以正常工作!

conda install -c peterjc123 pytorch-cpu

-1
投票

Windows10解决方案(这适用于我的系统):

我的系统中遇到了同样的问题。以前我使用的是Python 3.5,我使用virtualenv模块创建了一个名为pytorch_test的虚拟环境,因为我不想搞砸我的tensorflow安装(这花了我很多时间)。我遵循了每一条指令,但它似乎没有奏效。我安装了python 3.6.7将它添加到路径中。然后我用以下方法创建了虚拟环境:

virtualenv --python=3.6 pytorch_test

然后转到目标文件夹

cd D:\pytorch_test

并激活在cmd中输入命令的虚拟环境:

.\Scripts\activate

执行此操作后,命令提示符将显示:

(pytorch_test) D:\pytorch_test>

如果您在使用之前没有这样做,请更新pip:

(pytorch_test) D:\pytorch_test>python -m pip install --upgrade pip

然后从网站上安装numpy + mkl:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

如果你有python 3.6.7与wheel文件一起使用,请从列表中选择正确的版本:numpy-1.15.4 + mkl-cp36-cp36m-win_amd64.whl(对于64位)

(注意,如果整个工作不起作用,只需单独使用numpy安装和mkl安装)然后使用以下命令安装openmp:

(pytorch_test) D:\pytorch_test>pip install intel-openmp

现在你完成了先决条件。要安装pytorch,请转到以前的版本站点:https://pytorch.org/get-started/previous-versions/

在此处从Windows二进制文件列表中选择合适的版本。例如,我在我的系统中使用python 3.6.7安装了CUDA 9.0,所以我使用了gpu版本:

cu90 /火炬-1.0.0-CP36-cp36m-win_amd64.whl

(有两个可用版本0.4.0和1.0.0用于pytorch,我用1.0.0)

下载文件后使用pip安装它(假设whl文件在D :)中。您必须从虚拟环境pytorch_test本身执行此操作:

(pytorch_test) D:\pytorch_test>pip install D:\torch-1.0.0-cp36-cp36m-win_amd64.whl

像六,枕头的先决条件将自动安装。完成所有操作后,使用torchvision安装模型。只需输入:

(pytorch_test) D:\pytorch_test>pip install torchvision

要检查一切正常,请尝试以下脚本:

import torch
test = torch.rand(4, 7)
print(test)

如果一切都很好,那么它就不是问题。每当出现这样的问题时,它都与一个或多个依赖项的版本不匹配有关。这也发生在tensorflow安装期间。

使用cmd中的deactivate命令停用以下虚拟环境:

(pytorch_test) D:\pytorch_test>deactivate

这是我系统中pip列表的输出:


Package      Version
------------ -----------
intel-openmp 2019.0
mkl          2019.0
numpy        1.16.2
Pillow       6.0.0
pip          19.0.3
setuptools   41.0.0
six          1.12.0
torch        1.0.0
torchvision  0.2.2.post3
wheel        0.33.1

希望这可以帮助。这是我在这个社区的第一个答案,希望你们都觉得它很有帮助。在尝试各种组合后,我今天下午设置了pytorch。安装CNTK和tensorflow时,我遇到了同样的导入问题。无论如何,我在不同的虚拟环境中将它们分开,以便我可以随时使用它们。

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