ubuntu升级python后ModuleNotFoundError: No module named 'apt_pkg'异常
ubuntu 18.04默认的python3的版本为3.6,各种原因需要升级python版本
lozz
升级python版本
- 升级python
首先更新软件包列表并安装必备组件
sudo apt update
sudo apt install software-properties-common
添加PPA
sudo add-apt-repository ppa:deadsnakes/ppa
安装Python 3.8(以3.8版本为例)
sudo apt install python3.8
- 配置 python3.8 为系统默认 python3
将 python 各版本添加到 update-alternatives
⇒ which python3.8
/usr/bin/python3.8
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
⇒ which python3.6
/usr/bin/python3.6
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
配置 python3 默认指向 python3.8
⇒ sudo update-alternatives --config python3
有 2 个候选项可用于替换 python3 (提供 /usr/bin/python3)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /usr/bin/python3.6 2 自动模式
1 /usr/bin/python3.6 2 手动模式
* 2 /usr/bin/python3.8 1 手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:
输入 2(python3.8前的序号), 回车.完成设置
升级python版本后的异常
- 升级完python版本后,会出现异常
ModuleNotFoundError: No module named 'apt_pkg'
解决方法
cd /usr/lib/python3/dist-packages/
- 复制
sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.cpython-38m-x86_64-linux-gnu.so
sudo ln -s apt_pkg.cpython-38m-x86_64-linux-gnu.so apt_pkg.so
如果报错,则执行下方命令,强制添加
sudo ln -fs apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so