无法导入 Torch (ImportError: libcudart.so.10.0)
Posted
技术标签:
【中文标题】无法导入 Torch (ImportError: libcudart.so.10.0)【英文标题】:Unable to import torch (ImportError: libcudart.so.10.0) 【发布时间】:2020-09-08 21:13:05 【问题描述】:我目前正在开发 Nvidia Jetson Nano,我对 Linux 不是很熟悉。我正在尝试运行一个python文件,该文件导入一个名为torch的包。我按照 NVIDIA here 的说明将它与 torchvision 一起安装。
当我在终端上运行pip list
时,我可以看到torch 列为已安装的软件包之一。但是,由于下面看到的错误,我无法运行 python 文件。当我尝试在 python shell 上运行它时,会弹出相同的错误。
仅供参考:以前它存在问题,因为系统默认使用 python 2,但我已经通过编辑 .bashrc 文件切换到 python 3 修复了路径。
>>> import torch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/jiayi/.local/lib/python3.6/site-packages/torch/__init__.py", line 81, in <module>
from torch._C import *
ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory
我尝试通过 pip 卸载和安装,但无济于事。当我尝试安装 pytorch 包时(按照来自 github repo here 的说明),出现如下错误,这是由于相同的问题。它能够检测到安装了torch包,但似乎存在内部问题。
Requirement already satisfied: torch==1.4.0 from file:///home/jiayi/jetson-inference/build/torch-1.4.0-cp36-cp36m-linux_aarch64.whl in /home/jiayi/.local/lib/python3.6/site-packages (1.4.0)
[jetson-inference] cloning torchvision...
[sudo] password for jiayi:
Cloning into 'torchvision-36'...
remote: Enumerating objects: 71, done.
remote: Counting objects: 100% (71/71), done.
remote: Compressing objects: 100% (56/56), done.
remote: Total 8219 (delta 37), reused 29 (delta 15), pack-reused 8148
Receiving objects: 100% (8219/8219), 10.22 MiB | 3.60 MiB/s, done.
Resolving deltas: 100% (5631/5631), done.
[jetson-inference] building torchvision for Python 3.6...
Traceback (most recent call last):
File "setup.py", line 14, in <module>
import torch
File "/home/jiayi/.local/lib/python3.6/site-packages/torch/__init__.py", line 81, in <module>
from torch._C import *
ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory
[jetson-inference] installation complete, exiting with status code 0
[jetson-inference] to run this tool again, use the following commands:
$ cd <jetson-inference>/build
$ ./install-pytorch.sh
【问题讨论】:
【参考方案1】:我遇到了完全相同的问题。问题似乎是cuda 10.2。降级到 10.0 也无济于事。可能解决方案是从 Jetpack 手动安装所有内容,并确保要安装的 cuda 版本为 10.0。
【讨论】:
【参考方案2】:您可以通过检查torch.version.cuda
并确保它与您的 jetson nano 上的 cuda 版本相同,来检查您是否安装了支持您 cuda 的正确版本的 torch。
安装torch 的更简单方法是从Jetson Zoo 下载.whl 文件。将您的 nano 升级到最新的 Jetpack 版本也可能很有用
【讨论】:
当我在终端上运行torch.version.cuda
时,它给了我bash: torch.version.cuda: command not found
。不应该是这样,我想知道您是否知道原因,因为我并不真正熟悉它。
在你的命令行上,请做两件事。 nvcc -V
这将在您的 nano 上显示已安装的 cuda。接下来,输入您的 python 并通过执行以下操作找到 torch cuda 版本。 python3
import torch
torch.version.cuda
。这将显示您的手电筒 cuda 版本。请确保它们都匹配
我能够运行nvcc -V
。但是,当我尝试在我的 python shell 上运行 import torch
时,它会给出原始问题(第一个代码块)中列出的错误。当我通过python
或python3
打开外壳时会发生这种情况。
只是出于好奇,你的nvcc -V
的输出是什么
这里是:nvcc:NVIDIA (R) Cuda 编译器驱动程序 版权所有 (c) 2005-2019 NVIDIA Corporation 基于 Wed_Oct_23_21:14:42_PDT_2019 构建的 Cuda 编译工具,版本 10.2,V10.2.89以上是关于无法导入 Torch (ImportError: libcudart.so.10.0)的主要内容,如果未能解决你的问题,请参考以下文章
变压器:导入包时出错。 “ImportError:无法从 'torch.optim.lr_scheduler' 导入名称 'SAVE_STATE_WARNING'”
ImportError:无法导入名称“评估”(来自意外导入评估)
ImportError:导入 PCA 时无法导入名称“LatentDirichletAllocation”[关闭]