linux平台下安装完torch仍然显示ModuleNotFoundError: No module named ‘torch‘

在jupyter平台上跑的代码,忽然之前报错ModuleNotFoundError: No module named 'torch',没办法,只能按照需要的torch版本安装了一下:pip3 install torch==1.9.0+cu102 torchvision==0.10.0+cu102 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html,但是语句运行完之后报错依旧,估计就是jupyter平台依赖的库和我新安装的库位置不一样。

分两步:

  1. 找到当前python的版本、所在位置、依赖的库、确认是否没装上
  2. 找到默认python3.7所在位置,然后重新安装库

1. 当前python默认版本、依赖的库

python --version
## Python 3.7.6
pydoc re#查看re 模块位置和版本信息,但很遗憾,服务器不给出具体file 地址

linux平台下安装完torch仍然显示ModuleNotFoundError: No module named ‘torch‘_第1张图片
(这里会显示长串的pydoc re的说明文档,以vim显示,可以ctrl+Z退出,ctrl+f(表示forward)向下翻页,enter向下一行,一些简单的vim操作)

pip list #显示依赖库

linux平台下安装完torch仍然显示ModuleNotFoundError: No module named ‘torch‘_第2张图片
确实没有我新安装的torch

我新安装的库所在位置

Requirement already satisfied, skipping upgrade: typing-extensions in /usr/local/lib/python3.6/dist-packages (from torch==1.9.0+cu102) (3.7.4.1)
Requirement already satisfied, skipping upgrade: pillow>=5.3.0 in /usr/local/lib/python3.6/dist-packages (from torchvision==0.10.0+cu102) (7.0.0)
Requirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.6/dist-packages (from torchvision==0.10.0+cu102) (1.18.2)

可以看到新安装的库安在了python3.6下,是报错的原因

2. 默认python3.7所在位置,然后重新安装库

想要直接locate python3.7,但是发现这台机子不仅bash: locate: command not found,还bash: yum: command not foundbash: rpm: command not found所以开启一个安装基本command的支线任务

安装基本command(rpm\yum\locate)

1.安装rpm rpm命令简介 Linux rpm 命令用于管理套件。rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。
bash apt-get update apt-get install rpm

2.查看有无 yum安装包

bash $ rpm -qa |grep yum啥都没显示,说明没有,于是

bash apt-get install yum

3.安装locate

bash apt-get install mlocate
4.locate python3.7报错

bash locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
locate是通过生成一个文件和文件夹的索引数据库,当用户在执行loacte命令查找文件时,它会直接在索引数据库里查找,若该数据库太久没更新或不存在就报此错误,sudo updatedb 更新下数据库即可。

locate python3.7之后,发现主要 /usr/lib/python3.7和/opt/conda/lib/python3.7两个文件夹,但是locate python3.7有一个不好的地方就是会找到所有python3.7下的文件,而我只想到python3.7这一个文件夹的地址,不想要更细分的地址,可以用find -name python3.7,得到结果:
linux平台下安装完torch仍然显示ModuleNotFoundError: No module named ‘torch‘_第3张图片
我使用的python 3.7应该在/opt/conda/bin/python3.7下,默认的python --version也是它,到底是哪里出了问题?

最后通过下面语句找到问题:

$ pip --version
pip 20.0.2 from /opt/conda/lib/python3.7/site-packages/pip (python 3.7)
$ pip3 --version
pip 20.0.2 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

上面语句说明希望在默认Pyhton版本为Python3.7时使用pip,希望在默认Pyhton版本为Python3.6时使用pip3,而我最开始用的pip3 install torch==1.9.0+cu102 torchvision==0.10.0+cu102 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

语句更改为:pip install torch==1.9.0+cu102 torchvision==0.10.0+cu102 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

结束

你可能感兴趣的:(linux,运维,服务器)