Python 3.6环境下PyTorch安装后无法导入问题求助
兄弟,我来帮你捋捋这个问题——核心就是你的Python环境版本和Torch的安装路径没对上,导致运行代码时找不到正确的包。咱们一步步来解决:
1. 先搞清楚你当前用的是哪个Python版本
你目标是用Python3.6,但很可能运行import torch时调用的是其他版本的Python。先在终端敲这个命令确认:
python --version
如果显示的是3.7,那问题就找到了——你没激活装了Torch的conda环境,或者系统默认Python是3.7。
2. 用conda创建并激活专属的Python3.6环境
之前你直接用conda装Torch,可能是装到了默认的base环境里,而base环境的Python版本不一定是3.6。建议专门建个3.6的环境:
# 创建名为py36_torch的Python3.6环境 conda create -n py36_torch python=3.6 # 激活这个环境 conda activate py36_torch # 在激活的环境里重新装PyTorch conda install pytorch torchvision -c pytorch
激活环境后,终端前缀会变成(py36_torch),这时候再运行Python代码,用的就是这个环境里的Python3.6和对应的Torch了。
3. 解决pip版本不匹配的问题
之前你用pip3装Torch到了3.7的目录,是因为pip3默认关联的是系统的Python3.7。如果之后想用pip在3.6环境装包,激活conda环境后直接用pip就行——环境激活后,pip会自动绑定当前环境的Python版本,不用加3。
要是你不想用conda,想直接用系统的Python3.6,安装Torch时得指定Python3.6的pip:
# 替换成你Python3.6的实际路径,比如这个是示例路径 /usr/local/bin/python3.6 -m pip install torch
这样Torch就会装到Python3.6的site-packages里了。
4. 验证Python的包路径是否正确
如果还是导入失败,就打开Python终端,执行这段代码看看当前解释器能找到哪些包路径:
import sys print(sys.path)
检查输出里有没有你装Torch的那个路径(比如conda环境的site-packages)。如果没有,就手动把路径加进去:
import sys # 替换成你Torch实际的安装路径 sys.path.append("/Users/hugokitano/anaconda/envs/py36_torch/lib/python3.6/site-packages")
加完再试试import torch应该就可以了。
5. 清理冗余安装,避免环境混乱
最后把之前装在Python3.7里的Torch卸载掉,省得以后混淆:
pip3 uninstall torch
按这个流程走下来,应该就能解决你的问题啦!
内容的提问来源于stack exchange,提问作者hkitano

