解决 ModuleNotFoundError: No module named ‘torch‘ 笔记

在PyCharm解释器里去编写代码。

复制代码
#判断是否为pytorch张量

import torch
#创建python列表
a = [1.0,2.0,3.0]
#是否为pytorch张量
print("a = [1.0,2.0,3.0]\na是否为pytorch张量:",torch.is_tensor(a))
print("a[0]: ",a[0])

运行结果如下:

代码中引入了pytorch包,需注意在pycharm的环境安装pytorch包。否则代码运行会出现以下报错:ModuleNotFoundError: No module named 'torch'。

解决办法:

1,查一下pycharm用的环境,这类报错的本质是,运行的python和我装包的python不是同一个环境。

2,勿一看到缺包就盲目 pip stall,因为装错环境就等于白装。

详细命令如下:

摸清电脑上有哪些python环境:

复制代码
#在windows的cmd里运行

where python

python --version

#看conda有哪些环境

conda env list

3,确认pytorch项目实际用的是哪个环境

pycharm是项目解释器,不一定等于命令行默认的python。

方法 A(界面操作,推荐日常用):

File → Settings → Project: Python → Python Interpreter,看当前选中的解释器路径。

方法 B(看配置文件):

  • 项目 .idea/misc.xml 里有 project-jdk-name="Python 3.10 (Python) (2)"

  • 再打开 PyCharm 的配置

C:\Users\30630\AppData\Roaming\JetBrains\PyCharm2022.2\options\jdk.table.xml,找到这个名称对应的真实路径:

<name value="Python 3.10 (Python) (2)" />

<homePath value="D:\Code\Python\venv\Scripts\python.exe" />

→ 确认 PyCharm 用的是 项目自带的虚拟环境 D:\Code\Python\venv。

4,检查目标环境里有没有 torch

5,判断装 CPU 版还是 GPU 版

nvidia-smi # 有输出说明有 NVIDIA 显卡,可装 GPU 版;报错则装 CPU 版

6,安装(关键:用对解释器 + 用国内镜像)

第一次尝试失败(默认源太慢,15 秒超时):

pip install torch --index-url https://download.pytorch.org/whl/cpu

结果:Read timed out(超时)

第二次成功(换成清华镜像 + 加长超时时间):

D:\Code\Python\venv\Scripts\python.exe -m pip install torch \

-i https://pypi.tuna.tsinghua.edu.cn/simple \

--timeout 300 --retries 10

要点:

  • 一定用 venv 里的 python.exe 来 pip,而不是裸 pip,否则会装到别处

  • -i 清华镜像 解决国内网络慢/超时

  • --timeout 300 把默认 15 秒超时拉长,避免大文件下载中断

7,

补装依赖 numpy(torch 运行需要)

第一次跑通后冒出警告 No module named 'numpy',于是:

D:\Code\Python\venv\Scripts\python.exe -m pip install numpy \

-i https://pypi.tuna.tsinghua.edu.cn/simple --timeout 300

8,验证

D:\Code\Python\venv\Scripts\python.exe tensor_create.py

输出正常,问题解决。

为什么会踩坑,下次如何避免?

  1. 一个电脑上有多个 Python 环境(系统 Python、venv、多个 conda

环境),装包前一定要搞清楚「装给谁」。

  1. 环境名 ≠ 装了包:新建 conda 环境只是个空壳,要自己 conda install 或

pip install。

  1. PyCharm 有自己选中的解释器,和命令行默认 Python

可能不是同一个,装包要装到 PyCharm 用的那个。

  1. 国内网络装大包要用镜像 + 加长超时,否则 Read timed out。

通用速查(以后遇到任何 "No module named X")

1. 确认哪个环境缺这个包(用 PyCharm 的解释器路径替换)

<解释器路径>\python.exe -c "import X"

2. 装到那个环境

<解释器路径>\python.exe -m pip install X -i

https://pypi.tuna.tsinghua.edu.cn/simple --timeout 300

相关推荐
信誓旦旦的程序猿几秒前
【Python量化实战宝典 #26】止损与回撤控制手册:移动止损、最大回撤(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
2501_944521594 分钟前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
Patrick在香港21 分钟前
同一行 strftime,两台机器跑出两种日期
python·datetime·时区·locale·日期处理
2601_9679873732 分钟前
用Python+OpenCV+YOLO写个游戏脚本:从自动瞄准到自动采集的保姆级教程
python·opencv·yolo·目标检测·游戏自动化
meiying883832 分钟前
快递单号批量查询Python脚本:从手动到自动化的完整实现
开发语言·python·自动化
人工智能导论实践课1 小时前
【GUI桌面开发3】PyCharm配置外部工具
ide·python·pycharm
一千柯橘1 小时前
LangChain 的实时输出处理: stream_events 和 Streaming
python·langchain·agent
贾公子1 小时前
图片 AIGC 检测接入实战——URL 与 Base64 的取舍、体积校验与「你送过去的可能不是那张图」
python·aigc
SEO_juper1 小时前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash
曲径海盗1 小时前
【Python 学习第 37 天】for 循环
python·学习笔记·编程入门