Как решить «ModuleNotFoundError: нет модуля с именем« apt_pkg »» и «E: подпроцесс вернул код ошибки»

Я использую Pop-os 22.04 и обновил свой Python по умолчанию с 3.10 до 3.11. После обновления python я получаю эту ошибку каждый раз, когда пытаюсь выполнить «sudo apt update».

      $ sudo apt update
**Note: Skiped first few lines, those were not errors.**

Traceback (most recent call last):
  File "/usr/lib/cnf-update-db", line 3, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi'
E: Sub-process returned an error code

Если я изменю свою версию Python по умолчанию обратно на 3.10, эта ошибка больше не возникает. Я сделал это, чтобы изменить свою версию Python:

      $ sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).

  Selection    Path                 Priority   Status
------------------------------------------------------------
  0            /usr/bin/python3.11   2         auto mode
* 1            /usr/bin/python3.10   1         manual mode
  2            /usr/bin/python3.11   2         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2

Очень извините за мой плохой английский

2 ответа

cd /usr/lib/python3/dist-packages;sudo ln -s apt_pkg.cpython-3[67]m-x86_64-linux-gnu.so apt_pkg.so

Лучшее решение здесь — просто обойти проблему. Не пытайтесь запустить 3.11 в качестве Python по умолчанию в Pop-os. Вернитесь к версии 3.10 в Pop-os. Если вам нужен Python 3.11, установите его с помощью pyenv (https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv), но пусть 3.10 останется Python по умолчанию для Pop-os. пока команда Pop-os не решит обновиться до версии 3.11.

Другие вопросы по тегам