"进口火炬"从torch._C import *给出错误",DLL加载失败:找不到指定的模块"

时间:2018-03-20 23:35:20

标签: python torch

我目前在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和所有套餐,我确保没有重复的&#34;火炬&#34;我的目录中的文件夹。

请帮忙!谢谢!

8 个答案:

答案 0 :(得分:6)

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

解决方案:

  • https://anaconda.org/anaconda/intel-openmp/files

    下载 win-64 / intel-openmp-2018.0.0-8.tar.bz2
  • 将其提取并将 Library \ bin 中的dll文件放入
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin

  • 确保将cuda目录添加到%PATH%环境变量

答案 1 :(得分:2)

当我在conda环境中使用python 3.6.8和conda从通道-c pytorch安装的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。 strong>

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

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

答案 2 :(得分:1)

我有同样的问题。就我而言,我不想要pytorch的GPU版本。 我卸载了它。版本是pytorch:0.3.1-py36_cuda80_cudnn6he774522_2 peterjc123。

问题是cuda和cudnn。然后使用以下命令进行安装,现在可以使用了!

conda install -c peterjc123 pytorch-cpu

答案 3 :(得分:1)

我正在将Windows 10计算机与NVIDIA GeForce图形卡一起使用。 NVIDIA显示我拥有CUDA 10.1,但是在Jupyter Lab中运行import torch时出现此错误,并怀疑它与CUDA支持有关。

我通过直接从NVIDIA下载并安装CUDA Toolkit来解决此问题。它安装了所有必需的Visual Studio组件。当我返回Jupyter Lab时,import torch毫无错误地跑了出去。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

  1. 从python.org卸载python 3.6(如果存在)
  2. 安装miniconda
  3. 在conda中安装火炬(“conda install pytorch -c pytorch”)
  4. 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。

答案 6 :(得分:0)

遇到相同的问题,并通过使用mkl(英特尔的数学内核库)重新安装numpy来解决此问题 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

答案 7 :(得分:0)

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>

如果您在使用前没有做过更新点子,则:

(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 Binaries列表中选择合适的版本。例如,我在系统中使用python 3.6.7安装了CUDA 9.0,因此我选择了gpu版本:

cu90 / torch-1.0.0-cp36-cp36m-win_amd64.whl

(pytorch有两个可用的版本0.4.0和1.0.0,我使用的是1.0.0)

下载文件后,使用pip进行安装(假设文件位于 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

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


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时发生了同样的导入问题。无论如何,我将它们分别放置在不同的虚拟环境中,以便可以随时使用它们。