Ubuntu Pro 20.04 LTS启用自动更新后Python代码全部失效,求停止Python自动更新及修复方案
Ubuntu Pro 20.04 LTS启用自动更新后Python代码全部失效,求停止Python自动更新及修复方案
老哥我太懂这种被自动更新坑到心态崩的感觉了!你遇到的问题大概率是ESM Apps更新把Python核心依赖(比如numpy)更到了和你的Python 3.8不兼容的版本,导致循环导入报错。下面分两步给你解决:
一、停止Python相关自动更新的方法
既然已经禁用了esm-apps,接下来要把关键的Python包锁定,防止系统后续自动更新它们:
- 用
apt-mark hold命令锁定Python 3.8及核心依赖包,按需补充你常用的库:sudo apt-mark hold python3.8 python3.8-minimal python3.8-dev python3-numpy python3-pandas - 彻底确认ESM Apps源已关闭,更新源列表确保生效:
sudo pro disable esm-apps sudo apt update - 如果是用pip安装的第三方包,建议生成固定版本的依赖文件(
pip freeze > requirements.txt),后续安装时指定版本,避免意外更新。
二、修复当前Python环境的方案
你之前恢复旧site-packages没用,大概率是系统级的Python核心文件已经被更新,或者缓存残留导致的。试试这些步骤:
- 彻底清理Python缓存:
不光要清site-packages的.pyc文件,还要清理系统级缓存和pip缓存:sudo find /usr/lib/python3.8 -name "*.pyc" -delete sudo rm -rf ~/.cache/pip/ - 重新安装系统级Python及核心依赖:
先临时解除锁定(如果刚才执行过hold),再从20.04官方源重新安装:sudo apt-mark unhold python3.8 python3.8-minimal python3.8-dev python3-numpy python3-pandas sudo apt install --reinstall python3.8 python3.8-minimal python3.8-dev sudo apt install --reinstall python3-numpy python3-pandas - 虚拟环境重建(如果用了的话):
虚拟环境可能继承了系统更新后的依赖问题,直接重建最稳妥:# 假设你的虚拟环境目录名为myenv,先删除旧环境 rm -rf myenv # 用Python3.8重新创建虚拟环境 python3.8 -m venv myenv # 激活后重新安装依赖 source myenv/bin/activate pip install -r requirements.txt - 重新锁定包:
修复完成后,再次锁定这些包,防止下次更新踩坑:sudo apt-mark hold python3.8 python3.8-minimal python3.8-dev python3-numpy python3-pandas
备注:内容来源于stack exchange,提问作者Loggy
相关产品推荐
相关产品推荐

