Я довольно новичок в 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.
Если вы пытаетесь обновить 13.10 до 14.04, попробуйте выполнить эти инструкции . Если вы просто пытаетесь обновить текущую систему из командной строки, откройте терминал и введите следующее:
sudo apt-get update
sudo apt-get dist-upgrade
Мне удалось решить эту проблему, скопировав apt_pkg.cpython-34m-i386-linux-gnu.so
в / usr / lib / python3 / dist- packages /
с другого рабочего стола под управлением Ubuntu 14.04 LTS. Я пробовал почти все возможности, найденные в Интернете, например, очистку установки python, а затем переустановку, очистку поврежденных файлов обновления и т. Д., Но в итоге безуспешно.
у меня сработали следующие шаги:
cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-{35m,34m}-x86_64-linux-gnu.so
update-alternatives --set python3 /usr/bin/python3.6
Просто совет: я не устанавливаю "мой" питон на / usr / local, но у меня есть один специальный каталог для каждой версии python (например, в / opt), и я использую виртуальные среды в своей учетной записи для использования нужного мне Python, который активируется моим .profile
. При таком подходе вы всегда будете избегать изменения python система ожидала конфигурации и зависимостей.
Ну, я знаю, для вашего случая уже слишком поздно, но ...
На всякий случай, если это поможет другому, я наконец решил эту проблему, которая, по-видимому, была вызвана конфликтами версий Python, перенаправив ссылку python3, а затем перенаправив ее на нужную версию Python:
sudo rm /usr/bin/python3
sudo ln -s /usr/bin/python3.4
Возможно, вам потребуется ввести правильную версию python, найденную с помощью
python3 -V
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.
Проблема для меня заключалась в том, что я установил python3.7 рядом с python3.6 и сделал его по умолчанию.
Я вручную запустил следующую команду:
ln -s /usr/bin/python3.6 /usr/bin/python3
, поэтому теперь python3 указывает на правильная версия python ... которая решает проблему.
Я попытался использовать ответ @kodmanyagha, но в среде python не было найдено apt_pkg. Я решил это благодаря ответу @saranjeet :
/usr/lib/python3/dist-packages$ sudo cp apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so
Это решение использовало для работы у меня после того, как я обновился до 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!
У меня сработало следующее решение:
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
Надеюсь, это поможет!
Я столкнулся с той же проблемой после обновления 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 ...
Для меня ниже стоит полная
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
У меня была такая же проблема после обновления до 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. Это решило все