我见过太多次有人想用 conda install python=3.9 直接给环境升级,结果依赖炸得稀碎。其实 Conda 处理环境的方式决定了:换个 Python 版本最安全的办法就是新建一个环境。下面说几种在实际工作中真正好用的做法。
从零新建,直接指定版本
最干净的方式就是不看旧环境,直接创建一个新的并把 Python 版本定了。虽然要重装所有包,但这样绝对不会把历史的坑带过来。
# 先瞅一眼现有的环境
conda info --envs
# 创建新环境,明确 Python 版本
conda create -n my_new_env python=3.9
# 激活它
conda activate my_new_env
# 把需要的包装上
conda install pytorch torchvision d2l jupyter matplotlib pandas
不想挨个敲包名?那就从旧环境导出精确包列表,再喂给新环境:
# 导出旧环境的包列表(精确版本)
conda list --explicit > package-list.txt
# 用这个列表创建新环境,同时指定 Python 版本
conda create -n my_new_env --file package-list.txt python=3.9
注意,--explicit 会导出每个包的下载链接,重建时严格按版本安装,能保证环境一模一样。
用 environment.yml 管理环境
如果你习惯用 environment.yml 定义环境,那版本迁移就是改一行 YAML 的事。
编辑 environment.yml,把 python 版本一换:
name: my_env
channels:
- pytorch
- conda-forge
- defaults
dependencies:
- python=3.9
- pytorch=2.0.1
- torchvision=0.15.2
- d2l=1.0.3
- jupyter
- matplotlib
- pandas
然后:
# 删掉旧环境(确认不要了再删)
conda remove -n my_env --all
# 拿 yml 重建
conda create -f environment.yml


