1. 程式人生 > 實用技巧 >ubuntu升級python後ModuleNotFoundError: No module named 'apt_pkg'異常

ubuntu升級python後ModuleNotFoundError: No module named 'apt_pkg'異常

ubuntu 18.04預設的python3的版本為3.6,各種原因需要升級python版本

升級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