Проблема с менеджером обновлений: в Ubuntu 13.10 нет модуля с именем apt_pkg, так как Python 3.4 установлен в / usr / local / lib

Я довольно новичок в Ubuntu и пытаюсь запустить менеджер обновлений в Ubuntu 13.10. Я получаю:

jacopo@jacopo-laptop:~$ update-manager 
Traceback (most recent call last):
  File "/usr/bin/update-manager", line 28, in <module>
    from gi.repository import Gtk
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 27, in <module> from ._gi import _API
ImportError: No module named 'gi._gi'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 64, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 21, in <module>
import apt_pkg
ImportError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
File "/usr/bin/update-manager", line 28, in <module>
from gi.repository import Gtk
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 27, in <module>
from ._gi import _API
ImportError: No module named 'gi._gi'

Насколько я понял, это проблема, связанная с тем, что у меня должен быть установлен python3.4. Я установил его в /usr/local/lib, но всегда получаю одну и ту же ошибку. Таким образом, я даже не могу перейти на Ubuntu 14.04.

63
задан 29 April 2019 в 13:55

14 ответов

Если вы пытаетесь обновить 13.10 до 14.04, попробуйте выполнить эти инструкции . Если вы просто пытаетесь обновить текущую систему из командной строки, откройте терминал и введите следующее:

sudo apt-get update
sudo apt-get dist-upgrade
4
ответ дан 29 April 2019 в 13:55

Мне удалось решить эту проблему, скопировав apt_pkg.cpython-34m-i386-linux-gnu.so в / usr / lib / python3 / dist- packages / с другого рабочего стола под управлением Ubuntu 14.04 LTS. Я пробовал почти все возможности, найденные в Интернете, например, очистку установки python, а затем переустановку, очистку поврежденных файлов обновления и т. Д., Но в итоге безуспешно.

2
ответ дан 29 April 2019 в 13:55

у меня сработали следующие шаги:

cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-{35m,34m}-x86_64-linux-gnu.so

оригинальное решение находится здесь:

20
ответ дан 7 October 2019 в 16:48
update-alternatives  --set python3  /usr/bin/python3.6
24
ответ дан 7 October 2019 в 16:48

Просто совет: я не устанавливаю "мой" питон на / usr / local, но у меня есть один специальный каталог для каждой версии python (например, в / opt), и я использую виртуальные среды в своей учетной записи для использования нужного мне Python, который активируется моим .profile

. При таком подходе вы всегда будете избегать изменения python система ожидала конфигурации и зависимостей.

Ну, я знаю, для вашего случая уже слишком поздно, но ...

1
ответ дан 7 October 2019 в 16:48

На всякий случай, если это поможет другому, я наконец решил эту проблему, которая, по-видимому, была вызвана конфликтами версий Python, перенаправив ссылку python3, а затем перенаправив ее на нужную версию Python:

sudo rm /usr/bin/python3
sudo ln -s /usr/bin/python3.4

Возможно, вам потребуется ввести правильную версию python, найденную с помощью

python3 -V
1
ответ дан 23 November 2019 в 01:32

Atsaharo indray apt_pkg mampiasa:

sudo apt-get install --reinstall python3-apt

Ny lesoka dia noho ny tranomboky apt_pkg.cpython-35m-x86_64-linux-gnu.so tsy misy ao amin'ny / usr / lib / python3 / dist-packages .

Ny fanesorana sy ny fametrahana indray dia tokony hanampy.

51
ответ дан 23 November 2019 в 01:32

Проблема для меня заключалась в том, что я установил python3.7 рядом с python3.6 и сделал его по умолчанию.

Я вручную запустил следующую команду:

ln -s /usr/bin/python3.6  /usr/bin/python3

, поэтому теперь python3 указывает на правильная версия python ... которая решает проблему.

2
ответ дан 23 November 2019 в 01:32

Я попытался использовать ответ @kodmanyagha, но в среде python не было найдено apt_pkg. Я решил это благодаря ответу @saranjeet :

 /usr/lib/python3/dist-packages$ sudo cp apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so
0
ответ дан 5 January 2021 в 23:07

Это решение использовало для работы у меня после того, как я обновился до Python 3.6 или 3.7 и add-apt-repository перестал работать:

cd /usr/lib/python3/dist-packages
# where 35m is the file you have and 38m corresponds to your Python version
sudo ln -s apt_pkg.cpython-{35m,38m}-x86_64-linux-gnu.so

Теперь у меня Python 3.8 и add-apt-repository снова перестал работать. Я нашел другой связанный вопрос SO с этим ответом , который сработал для меня. Похоже, что ожидаемое имя файла теперь просто apt_pkg.so , поэтому вам нужно сделать следующее:

cd /usr/lib/python3/dist-packages
# where 35m is the file you have
sudo ln -s apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so

Тот факт, что новое ожидаемое имя файла будет просто apt_pkg.so , является многообещающим. Надеюсь, это означает, что нам не придется продолжать танцевать каждый раз, когда появится новая минорная версия Python!

0
ответ дан 5 January 2021 в 23:07

У меня сработало следующее решение:

cd  /usr/lib/python3/dist-packages
ls -la /usr/lib/python3/dist-packages
sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so

Если вы получите сообщение об ошибке, в котором указано слишком много уровней символических ссылок как показано ниже:

cp: failed to access '/usr/lib/python3/dist-packages/apt_pkg.so': Too many levels of symbolic links

Затем вам нужно просто отключить файл apt_pkg.so. Используйте следующую команду:

sudo unlink apt_pkg.so

А затем используйте команду

sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so

Надеюсь, это поможет!

7
ответ дан 5 January 2021 в 23:07

Я столкнулся с той же проблемой после обновления ubuntu 19 до ubuntu 20. В ubuntu 20 версия python по умолчанию - 3.8, но некоторые пакеты не поддерживают эту версию. Для этого я понизил версию Python по умолчанию до 3.7. После перехода на более раннюю версию я столкнулся с этой дерьмовой проблемой.

Это документация по переходу на более раннюю версию: https://blog.nixarsoft.com/2020/06/04/ubuntu-20-and- old-python-versions /

Позвольте мне рассказать вам, как решить эту проблему.

python3.8
Python 3.8.2 (default, Apr 27 2020, 15:53:34) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import apt_pkg
>>> apt_pkg
<module 'apt_pkg' from '/usr/lib/python3/dist-packages/apt_pkg.cpython-38-x86_64-linux-gnu.so'>
>>> exit

Как видите, для apt_pkg есть файл ".so", который находится в "/ usr / lib / python3 / dist -packages / apt_pkg.cpython-38-x86_64-linux-gnu.so "Теперь, если вы свяжете этот файл с" /usr/lib/python3/dist-packages/apt_pkg.cpython-37-x86_64-linux-gnu.so " тогда вы можете использовать эту библиотеку в python 3.7. Пожалуйста, позаботьтесь о том, чтобы я изменил "38" на "37" в связанном файле. Вы должны быть root для make link.

sudo ln -s /usr/lib/python3/dist-packages/apt_pkg.cpython-38-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/apt_pkg.cpython-37-x86_64-linux-gnu.so

Возможно, вы можете использовать тот же метод для других версий python.Если вы измените 38 на 36, вы можете использовать эту библиотеку в python 3.6 ...

0
ответ дан 5 January 2021 в 23:07

Для меня ниже стоит полная

    mansoor@LDEVOPS-MANSOOR:~/Documents/clients/HR/DevopsSimulator$  cd /usr/lib/python3/dist-packages

    mansoor@LDEVOPS-MANSOOR:/usr/lib/python3/dist-packages$ sudo ln -s apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so
0
ответ дан 27 April 2021 в 01:07

У меня была такая же проблема после обновления до Python 3.9 и воссоздания символической ссылки '/ usr / bin / python3', указывающей на новое местоположение.

Единственное решение, которое сработало для меня, было из комментария к первому ответу от @Kenivia: sudo apt remove --purge python3-apt затем sudo apt install python3-apt

Это устранило ошибку, но удалило мой программный центр ubuntu. Но это не было большой проблемой, потому что я просто переустановил его с помощью sudo apt install ubuntu-software , и теперь, похоже, все работает нормально

РЕДАКТИРОВАТЬ: некоторые проблемы все еще сохранялись после этого (update-manger продолжал выдавать ошибки и не запускался). Поэтому мне пришлось вернуться и вернуть символическую ссылку / usr / bin / python3, чтобы указать на исходное местоположение python3.6. Это решило все

1
ответ дан 28 July 2021 в 15:27

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

Похожие вопросы: