Pytorch: ModuleNotFoundError: 没有名为“torch._C”的模块

创建于 2017-01-24  ·  40评论  ·  资料来源: pytorch/pytorch

你好呀,

我已经从官方网页下载了 Python 3.5 的 PyTorch pip 包 CPU 版本。 我使用wget下载了它,pip install命令安装软件包,没有显示任何错误消息。 torchvision软件包已正确安装。

如果我尝试在 ipython 会话或 Python 会话中使用import torch导入torch模块,我会收到以下错误:

Python 3.6.0 (default, Jan 16 2017, 12:12:55) 
[GCC 6.3.1 20170109] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.6/site-packages/torch/__init__.py", line 45, in <module>
    from torch._C import *
ModuleNotFoundError: No module named 'torch._C'

有任何想法吗?

最好的祝福,
亚历山德罗

最有用的评论

@phenixcx问题是您在同一目录中有一个名为torch的文件夹,该文件夹正在被拾取。 这样做: cd .. (更改目录),然后启动pythonimport torch ,它应该可以工作。

所有40条评论

解决方案

问题是您在正在选取的同一目录中有一个名为torch的文件夹。 这样做: cd .. (更改目录),然后启动pythonimport torch ,它应该可以工作。


[编辑添加上面的片段,而不是埋在线程中]

torch._C是我们的CPython 扩展名(即python 加载的C 共享库)。 恐怕它们在 Python 版本之间可能不是二进制兼容的。 你能告诉我ls /usr/lib/python3.6/site-packages/torch/的输出吗?

您不能像这样重命名 pip 轮子并期望它们能够工作。
这是因为 C 扩展的命名方式特定于 Python 版本。

我们将在下一个版本中包含用于 python 3.6 的 pip 轮子。

@soumith你绝对是对的。 我已经试过了,因为这个程序对 TensorFlow 很有效:D

@apaszke这是你的:

asuglia<strong i="9">@maximillian</strong> ~ $ ls -ll /usr/lib/python3.6/site-packages/torch/
totale 43360
drwxr-xr-x 4 root root     4096 24 gen 20.15 autograd
drwxr-xr-x 4 root root     4096 24 gen 20.15 backends
-rwxr-xr-x 1 root root 44131377 24 gen 20.15 _C.cpython-35m-x86_64-linux-gnu.so
drwxr-xr-x 3 root root     4096 24 gen 20.15 cuda
-rwxr-xr-x 1 root root    15612 24 gen 20.15 _dl.cpython-35m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root      942 24 gen 20.15 functional.py
-rw-r--r-- 1 root root     7737 24 gen 20.15 __init__.py
drwxr-xr-x 5 root root     4096 24 gen 20.15 legacy
drwxr-xr-x 3 root root     4096 24 gen 20.15 lib
drwxr-xr-x 3 root root     4096 24 gen 20.15 multiprocessing
drwxr-xr-x 7 root root     4096 24 gen 20.15 nn
drwxr-xr-x 3 root root     4096 24 gen 20.15 optim
drwxr-xr-x 2 root root     4096 24 gen 20.15 __pycache__
-rw-r--r-- 1 root root    12520 24 gen 20.15 serialization.py
drwxr-xr-x 3 root root     4096 24 gen 20.15 sparse
-rw-r--r-- 1 root root     3354 24 gen 20.15 storage.py
-rw-r--r-- 1 root root    31721 24 gen 20.15 _tensor_docs.py
-rw-r--r-- 1 root root    16961 24 gen 20.15 tensor.py
-rw-r--r-- 1 root root    10317 24 gen 20.15 _tensor_str.py
drwxr-xr-x 3 root root     4096 24 gen 20.15 _thnn
-rw-r--r-- 1 root root    98275 24 gen 20.15 _torch_docs.py
drwxr-xr-x 7 root root     4096 24 gen 20.15 utils
-rw-r--r-- 1 root root     2532 24 gen 20.15 _utils.py

如果我可以为您提供有关该问题的任何其他信息,请随时提问,我很乐意为您提供帮助!

是的,所以你可以看到_C.cpython-35m这意味着它只会被 Python 3.5 加载。 作为快速破解,您可以尝试将_C_dl_thnn/_THNN重命名_C常规.so文件(没有cpython-version-artch-platform部分,只需_C.so )。 但这是一个 hack,如果失败,我们不会提供进一步的支持 😄

谢谢您的帮助! 我会试试的:+1:

嗨,我在使用 Python 2.7.13 和 Anaconda 4.3.0(64 位)安装 PyTorch 时遇到了同样的问题。 你能给我一个提示吗?

安装方式写成如下:
git 克隆https://github.com/pytorch/pytorch
pip install -r requirements.txt
python setup.py 安装

之后,系统告诉我安装了PyTorch。 然后我在提示命令行中写下了“python”。 最后,在python命令行中输入'import torch'。 不幸的是,我得到了以下信息:
回溯(最近一次调用最后一次):
文件 ”",第 1 行,在
文件“torch/__init__.py”,第 45 行,在
从火炬._C 进口*
导入错误:没有名为 _C 的模块

包 /usr/lib/python2.7/site-packages 没有火炬包。 pytorch 有一个包 torch,并有以下文件:
[ root@AliHPC-M40-434火炬]# ls -ll
共 236
drwxr-xr-x 3 root root 150 Feb 10 11:54 autograd
drwxr-xr-x 3 root root 48 Feb 10 11:54 backends
drwxr-xr-x 9 根 4096 二月 10 11:54 csrc
drwxr-xr-x 2 root root 109 Feb 10 11:54 cuda
drwxr-xr-x 2 root root 83 Feb 10 11:54 分发
-rw-r--r-- 1 根根 2218 年 2 月 10 日 11:54functional.py
-rw-r--r-- 1 根 7768 2 月 10 日 11:54 __init__.py
-rw-r--r-- 1 根 8762 二月 10 日 13:49 __init__.pyc
drwxr-xr-x 4 root root 61 Feb 10 11:54 legacy
drwxr-xr-x 15 根 4096 二月 10 日 12:00 lib
drwxr-xr-x 2 root root 93 Feb 10 11:54 multiprocessing
drwxr-xr-x 6 根 4096 2 月 10 日 11:54 nn
drwxr-xr-x 2 根 4096 二月 10 11:54 优化
-rw-r--r-- 1 root root 12581 Feb 10 11:54 serialization.py
drwxr-xr-x 2 根根 2 月 10 日 32 日 11:54 稀疏
-rw-r--r-- 1 根 3354 2 月 10 日 11:54 storage.py
-rw-r--r-- 1 根 33716 2 月 10 日 11:54 _tensor_docs.py
-rw-r--r-- 1 根根 17009 二月 10 日 11:54 tensor.py
-rw-r--r-- 1 根 10346 2 月 10 日 11:54 _tensor_str.py
drwxr-xr-x 2 root root 71 Feb 10 11:55 _thnn
-rw-r--r-- 1 根 99370 2 月 10 日 11:54 _torch_docs.py
drwxr-xr-x 6 root root 145 Feb 10 11:54 utils
-rw-r--r-- 1 根 2532 2 月 10 日 11:54 _utils.py
-rw-r--r-- 1 根根 2895 年 2 月 10 日 13:49 _utils.pyc

您没有使用 anaconda python,因为它正在/usr/lib/python2.7/site-packages寻找包。 查看which python的输出,看看为什么它不是 anaconda python

'which python' 的输出是 '/root/anaconda2/bin/python'。 刚才我也在命令行中写了'/root/anaconda2/bin/python',在python命令行中使用了'import torch'。 结果是一样的:
回溯(最近一次调用最后一次):
文件 ”",第 1 行,在
文件“torch/__init__.py”,第 45 行,在
从火炬._C 进口*
导入错误:没有名为 _C 的模块

另外,我在安装pytorch之前在另一个包中安装了torch 7。 操作系统是centos 7。
预先感谢 Soumith 的帮助。

@phenixcx问题是您在同一目录中有一个名为torch的文件夹,该文件夹正在被拾取。 这样做: cd .. (更改目录),然后启动pythonimport torch ,它应该可以工作。

伟大的! 它真的有效。 非常感谢你。 包位置使 pytorch 感到困惑。

@soumith天才观察!

@soumith你的建议真的

@soumith 非常感谢你,我被这个错误

@soumith 非常感谢!

也解决了我的问题! 谢谢@soumith

Gah,到目前为止我已经两次达到这一点:-P。 顺便说一句,如果您尽职尽责地 cd 进入主目录,但脚本本身位于克隆的pytorch文件夹中,也会出现问题。

天哪,就是这样

工作了!

工作!

从分支 v0.3.0 的源代码构建后,我遇到了同样的错误

我的系统是OSX10.12,python版本是3.6.1。 我不使用蟒蛇蟒蛇。 我通过 pip3 安装了所有可选的依赖项。 我通过export NO_CUDA=1禁用了 CUDA 支持

稍微更改了安装命令以适合我的系统:
Jon (v0.3.0) pytorch $ MACOSX_DEPLOYMENT_TARGET=10.12 CC=clang CXX=clang++ python3 setup.py install

在构建过程中收到 7 个警告:
~~/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:14:29: 警告: 'THDTensorDescriptor_newFromTHDoubleTensor' 指定了 C-linkage,但返回用户定义的类型与 C [-Wreturn-type-c-linkage] 不兼容的“THDTensorDescriptor”(又名“at::Tensor”)THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHDoubleTensor(THDoubleTensor *tensor);^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:15:29: 警告:'THDTensorDescriptor_newFromTHFloatTensor' 指定了 C 链接,但返回用户定义的类型与 C [-Wreturn-type-c-linkage] 不兼容的“THDTensorDescriptor”(又名“at::Tensor”)THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHFloatTensor(THFloatTensor *tensor);^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:16:29: 警告:'THDTensorDescriptor_newFromTHLongTensor' 指定了 C-linkage,但返回用户定义的类型与 C [-Wreturn-type-c-linkage] 不兼容的“THDTensorDescriptor”(又名“at::Tensor”)THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHLongTensor(THLongTensor *tensor);^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:17:29: 警告:'THDTensorDescriptor_newFromTHIntTensor' 指定了 C-linkage,但返回用户定义的类型与 C [-Wreturn-type-c-linkage] 不兼容的“THDTensorDescriptor”(又名“at::Tensor”)THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHIntTensor(THIntTensor *tensor);^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:18:29: 警告:'THDTensorDescriptor_newFromTHShortTensor' 指定了 C-linkage,但返回用户定义的类型与 C [-Wreturn-type-c-linkage] 不兼容的“THDTensorDescriptor”(又名“at::Tensor”)THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHShortTensor(THShortTensor *tensor);^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:19:29: 警告:'THDTensorDescriptor_newFromTHCharTensor' 指定了 C 链接,但返回用户定义的类型与 C [-Wreturn-type-c-linkage] 不兼容的“THDTensorDescriptor”(又名“at::Tensor”)THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHCharTensor(THCharTensor *tensor);^/Users/Jon/pytorch/torch/lib/tmp_install/include/THD/base/TensorDescriptor.h:20:29: 警告:'THDTensorDescriptor_newFromTHByteTensor' 指定了 C-linkage,但返回用户定义的类型与 C [-Wreturn-type-c-linkage] 不兼容的“THDTensorDescriptor”(又名“at::Tensor”)THD_API THDTensorDescriptor THDTensorDescriptor_newFromTHByteTensor(THByteTensor *tensor);^生成了 7 个警告。~~
除了这些警告之外,安装对我来说还不错。
该pytorch源在~/pytorch/目录,我跑在Python ~/Desktop
有什么想法可能导致导入失败?

@Jonbean嗨,我只是从 master 分支克隆了最新版本的 pytorch。 我已经成功安装了它。 为什么不试试主分支?

我有同样的问题:

ImportErrorTraceback(最近一次调用最后一次)
()
----> 1个进口手电筒

导入错误:没有名为“torch”的模块

我在安装 pytorch 后使用 jupyter notebook,但我不知道如何解决这个问题。
注意:我使用 tensorflow 没有这个问题。

你能让这条评论更明显吗?
https://github.com/pytorch/pytorch/issues/574#issuecomment -278879701
例如@soumith通过编辑您在此线程中的第 3 个帖子?

这是我第二次到达这个线程,这是第二次解决方案......

@talesa在线程的第二篇文章中添加了解决方案: https :

我有一个类似的问题。 而这里的解决方案似乎对我不起作用。

我开始关注http://course.fast.ai/ 上的实用深度学习编程课程

在课程开始时进行导入时,出现以下错误:

~\Documents\Fast AI\fastai\courses\dl1\fastai\torch_imports.py in <module>()
      1 import os
----> 2 import torch, torchvision, torchtext
      3 from torch import nn, cuda, backends, FloatTensor, LongTensor, optim
      4 import torch.nn.functional as F
      5 from torch.autograd import Variable

C:\ProgramData\Anaconda3\envs\fastai\lib\site-packages\torch\__init__.py in <module>()
     74     pass
     75 
---> 76 from torch._C import *
     77 
     78 __all__ += [name for name in dir(_C)

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

我还尝试在 Jupyter Notebook 之外的 python 中执行import torch

(fastai) C:\Users\PJvG\Documents\Fast AI\fastai>python
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bi
t (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\envs\fastai\lib\site-packages\torch\__init__.py
", line 76, in <module>
    from torch._C import *
ImportError: DLL load failed: The specified procedure could not be found.
>>> which python
  File "<stdin>", line 1
    which python
               ^
SyntaxError: invalid syntax

我试着做cd .. ,没有任何变化。

我在停用我的 fastai 频道后尝试过:

(base) C:\Users\PJvG\Documents>python
Python 3.6.4 |Anaconda custom (64-bit)| (default, Jan 16 2018, 10:22:32) [MSC v.
1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'torch'

有人可以帮我解决这个问题吗?

@PJvG这似乎是一个与 Windows 相关的问题。 可能会更好地询问https://github.com/pytorch/pytorch/issues/494

@PJvG您找到问题的解决方案了吗?

不,我不

2018年3月18日0:23 GMT-03:00 karanmurthy7 [email protected]

@PJvG https://github.com/pjvg您找到问题的解决方案了吗?


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/pytorch/pytorch/issues/574#issuecomment-373969927
或静音线程
https://github.com/notifications/unsubscribe-auth/AWEPqcNsVyhzPm5yfm8enhRUce22vLLtks5tfdMUgaJpZM4Lsrr6
.

我正在尝试让 Pytorch 使用 Anaconda 在 Windows 10 中工作。 花了很长时间才安装成功。 现在,当我尝试导入它时,出现相同的错误:

>>> import torch
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\conner\Anaconda3\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.

我试过 cd .. 并从该新目录启动 python 并引发相同的错误。 我也试过
@apaszke推荐:

是的,所以您可以看到有 _C.cpython-35m,这意味着它只能由 Python 3.5 加载。 作为快速破解,您可以尝试将 _C、_dl 和 _thnn/_THNN 重命名为常规 .so 文件(没有那个 cpython-version-artch-platform 部分,只是 _C.so)。 但这是一个 hack,如果失败,我们不会提供进一步的支持 😄

这是torch目录中的内容:

 Directory of C:\Users\conner\Anaconda3\Lib\site-packages\torch

05/05/2018  07:52 PM    <DIR>          .
05/05/2018  07:52 PM    <DIR>          ..
05/05/2018  07:29 PM    <DIR>          autograd
05/05/2018  07:29 PM    <DIR>          backends
05/05/2018  07:29 PM    <DIR>          contrib
05/05/2018  07:29 PM    <DIR>          cuda
05/05/2018  07:29 PM    <DIR>          distributed
02/24/2018  05:49 AM             6,208 distributions.py
05/05/2018  07:29 PM    <DIR>          for_onnx
02/24/2018  05:49 AM             9,714 functional.py
05/05/2018  07:29 PM    <DIR>          jit
05/05/2018  07:29 PM    <DIR>          legacy
05/05/2018  07:29 PM    <DIR>          lib
05/05/2018  07:29 PM    <DIR>          multiprocessing
05/05/2018  07:29 PM    <DIR>          nn
05/05/2018  07:29 PM    <DIR>          onnx
05/05/2018  07:29 PM    <DIR>          optim
11/09/2017  07:38 PM             4,130 random.py
02/24/2018  05:49 AM            16,759 serialization.py
05/05/2018  07:29 PM    <DIR>          sparse
02/24/2018  05:49 AM             4,016 storage.py
02/24/2018  05:49 AM            14,497 tensor.py
05/05/2018  07:29 PM    <DIR>          utils
02/24/2018  01:46 PM                58 version.py
02/24/2018  01:52 PM        22,208,512 _C.pyd
02/24/2018  01:52 PM            10,240 _nvrtc.cp36-win_amd64.pyd
10/27/2017  09:31 PM             3,044 _six.py
09/17/2017  08:09 AM             1,164 _storage_docs.py
02/24/2018  05:49 AM            39,842 _tensor_docs.py
02/24/2018  05:49 AM            11,024 _tensor_str.py
05/05/2018  07:29 PM    <DIR>          _thnn
02/24/2018  05:49 AM           127,125 _torch_docs.py
02/24/2018  05:49 AM             9,201 _utils.py
02/24/2018  05:49 AM             9,313 __init__.py
05/05/2018  07:29 PM    <DIR>          __pycache__
              16 File(s)     22,474,847 bytes
              19 Dir(s)  318,658,211,840 bytes free

关于如何让 pytorch 工作的任何想法?

大家好,
我是 Pytorch 的新手,我已经将它安装在 Anaconda 上。 我遇到了同样的错误,我想通过cd ...更改目录。 我不知道这到底是什么意思! 谁能告诉我如何在 Anaconda 上做到这一点? 并将目录更改为什么? 我完全糊涂了。

提前致谢

我的 python 愿景是 3.6.2。 我得到了同样的错误:

进口火炬
回溯(最近一次调用最后一次):
文件 ”",第 1 行,在
文件“C:UsershpAppDataLocalProgramsPythonPython36libsite-packagestor
ch__init__.py”,第 78 行,在
从火炬._C 进口*
ImportError: DLL load failed: 找不到指定的模块。

请帮帮我, @ connermcb @PJvG @apaszke

大家好,我使用的是我的 mac 系统的 python 2.7(不是第三方 python)
我遇到了这个问题并得到了解决方案
只需运行此命令,确保使其适应您的环境👍

sudo install_name_tool -change @rpath/libc++.1.dylib /usr/lib/libc++.1.dylib /Library/Python/2.7/site-packages/torch/_C.so

@phenixcx问题是您在同一目录中有一个名为torch的文件夹,该文件夹正在被拾取。 这样做: cd .. (更改目录),然后启动pythonimport torch ,它应该可以工作。

我在 Windows 上遇到了同样的错误,任何帮助解决

问题:
从火炬._C 进口*
导入错误:没有名为“torch._C”的模块

环境:
3.5.6 |Anaconda, Inc.| (默认,2018 年 8 月 26 日,16:05:27)[MSC v.1900 64 位 (AMD64)]

解决:
我通过 pip3 重新安装了手电筒,然后它就可以工作了。

pip3 install torch==1.2.0+cpu torchvision==0.4.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

@phenixcx问题是您在同一目录中有一个名为torch的文件夹,该文件夹正在被拾取。 这样做: cd .. (更改目录),然后启动pythonimport torch ,它应该可以工作。

我在 Windows 上遇到了同样的错误,任何帮助解决

你找到解决办法了吗?

大家好!
我有同样的问题,但解决方案不适合
我使用的是 Raspberry pi 3 B 型。退出目录没有结果。
image

大家好!
我有同样的问题,但解决方案不适合
我使用的是 Raspberry pi 3 B 型。退出目录没有结果。
image

不确定您是否设法解决了这个问题@BulNik ,但是一旦您构建了轮子,它将位于pytorch/dist文件夹(whl 扩展名)中。 如果您想在您的路径中正确链接它,只需执行以下操作:

pip3 install pytorch/dist/torch-1.6.0a0+68f23d5-cp37-cp37m-linux_armv7l.whl

_用你的名字替换轮文件名_

它至少适用于我的 Raspberry Pi 4 Model B。 如果您仍有问题,请告诉我!

执行 cd... 方法后,奇怪的是,在我的 google colab 中重新启动和重置所有内容解决了这个问题。 也许先尝试这个可以节省时间。 不知道为什么
[没有名为'torch._C'的模块]

是的,所以你可以看到_C.cpython-35m这意味着它只会被 Python 3.5 加载。 作为快速破解,您可以尝试将_C_dl_thnn/_THNN重命名_C常规.so文件(没有cpython-version-artch-platform部分,只需_C.so )。 但这是一个黑客,如果失败,我们不会提供进一步的支持

嗨,我做到了。 我有一个新错误:(

进口火炬
回溯(最近一次调用最后一次):
文件 ”",第 1 行,在
文件“/home/pi/.local/lib/python3.7/site-packages/torch/__init__.py”,第 79 行,在
从火炬._C 进口*
导入错误:/usr/lib/arm-linux-gnueabihf/libstdc++.so.6:未找到版本“GLIBCXX_3.4.26”(/home/pi/.local/lib/python3.7/site-packages/torch/需要)库/libtorch_python.so)

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

dablyo picture dablyo  ·  3评论

szagoruyko picture szagoruyko  ·  3评论

soumith picture soumith  ·  3评论

bartvm picture bartvm  ·  3评论

bartolsthoorn picture bartolsthoorn  ·  3评论