我一直在尝试解决损坏的 pytorch 安装问题,并通过使用
conda remove -n <env> --all
删除环境并重新创建它,进行了几次新的开始。在某些时候,我注意到新创建的环境根本不“新鲜”:当从该环境启动 python 时,我仍然能够 import
来自已删除的同名环境的包,即 pytorch
,未安装在 base
环境中(activate base
随后尝试导入 pytorch
不起作用,如预期)。我试过了
conda create -n <random name>
甚至随机命名的空环境也莫名其妙地安装了
pytorch
。在创建环境之前运行 conda clean --all
并不能阻止这种情况的发生。
造成这种情况的原因是什么?如何防止这种情况发生?
出现该问题的原因是 Conda 可能会重用缓存的包或默认配置,导致像 PyTorch 这样的意外包出现在新环境中。解决方法如下:
检查默认包
确保 PyTorch 未配置为默认安装:
conda config --show default_packages
conda config --remove-key default_packages
清理缓存
删除所有缓存文件和包数据:
conda clean --all
创建一个最小的环境
使用
--no-default-packages
标志:
conda create -n myenv python=3.12 --no-default-packages
验证包来源
如果 PyTorch 仍然存在,请检查其来源:
import torch
print(torch.__file__)
如果路径在Conda之外,请设置
PYTHONNOUSERSITE=1
以防止系统级包泄漏。
重新安装Conda(可选)
如果问题仍然存在,请重新安装 Conda 以重置所有配置:
rm -rf ~/miniconda3 # or your Conda install path