如何撤销pip升级ipykernel的操作,通过environment.yaml恢复原有conda环境
能否撤销本次pip升级操作
可以实现撤销,从你给出的pip执行日志可以明确看到本次操作的所有变更内容:共升级了3个原有包(traitlets从5.0.5到5.1.1、ipython从7.22.0到7.29.0、ipykernel从5.3.4到6.5.0),新增安装了2个依赖包(debugpy 1.5.1、matplotlib-inline 0.1.3),没有备份的情况下直接执行以下命令即可手动回滚:
pip install traitlets==5.0.5 ipython==7.22.0 ipykernel==5.3.4 pip uninstall -y debugpy matplotlib-inline
强制将base环境恢复到environment.yaml定义状态的方法
你使用conda env update --file environment.yaml --prune不生效的核心原因是:conda默认不会覆盖通过pip安装的高版本包,优先级上pip安装的包会覆盖conda的同包记录,需要按以下步骤操作实现完全对齐:
- 先激活base环境,同时导出当前pip安装的包列表做备份,避免误操作丢失配置:
conda activate base pip list > current_pip_backup.txt
- 清理本次通过pip安装的所有变更包,解除pip对conda包的覆盖:
pip uninstall -y traitlets ipython ipykernel debugpy matplotlib-inline
- 重新执行conda环境恢复命令,此时conda会完全按照yaml配置安装对应版本的包,移除所有不在yaml记录中的额外包:
conda env update --file environment.yaml --prune
- 如果执行后仍有版本不一致的情况,可添加强制重装参数对所有yaml记录的包进行覆盖安装:
conda install --force-reinstall --file environment.yaml
如果你的conda环境在本次升级前有提交记录,也可以通过conda内置的版本回滚功能快速恢复:执行conda list --revisions找到升级前的版本编号,执行conda install --revision <对应编号>即可一键回滚到对应状态。
内容的提问来源于stack exchange,提问作者hg628193hg
相关产品推荐
相关产品推荐

