Я недавно обновил с 15.10 до 16.04, и теперь мой python3
, похоже, испорчен.
Перед обновлением у меня были установлены python3.4
и python3.5.1
(вручную). Обновление удалило python3.4
и заменило его на python3.2
и python3.1
.
Новый python3.5.1
удалил мою python3.5.1
установку.
Но сейчас я сталкиваюсь с множеством проблем:
comand-not-found
больше не работает и вылетает с этот след (1)
, если я попытаюсь запустить commmand-not-found
с python3.2
(2)
, я лишил еще нескольких вещей , как это всегда одинаково.
Я не хочу использовать старые версии python3
, так как я могу это исправить?
И , почему есть python3.1
?
(1)
me@my-machine:~$ whareis systemd
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 27, in <module>
from CommandNotFound.util import crash_guard
ImportError: No module named 'CommandNotFound'
(2)
Traceback (most recent call last):
File "/usr/lib/python3.2/dbm/gnu.py", line 6, in <module>
from _gdbm import *
ImportError: No module named _gdbm
Решение : В отличие от этого, я упомянул перед моим python3.5.1
, установка не была удалена обновлением. Это все еще находилось под /usr/local/bin/python3.5
.
Трассировка Ошибки : Я записал несколько строк отладки в /usr/lib/python3.5/_sysconfigdata.py
:
print("python-version", sys.version_info)
print("python-gcc-version",sys.version)
print("python-executable",sys.executable)
вывод отличался между вызовом /usr/bin/python3
и rhythmbox
, но исполняемый файл Python был обоими способами /usr/bin/python3
Затем, я искал неправильную установку с помощью whereis python3
и удалил /usr/local/bin/python3.5
Затем, я произвел чистку и переустановил python3
и работал apt install -f
.
, Таким образом, эта Ошибка исчезла.
Помнят : никогда не устанавливайте материал из источника, если это могло бы быть в repos когда-то или, по крайней мере, удалить его, прежде чем Ваш диспетчер пакетов установит его.
Видел ту же ошибку в Ubuntu 16.04
с двумя установками Python3 (3.5.2
и 3.7.3
):
$ junk
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 27, in <module>
from CommandNotFound.util import crash_guard
ModuleNotFoundError: No module named 'CommandNotFound'
Мне не был нужен Python 3.5.2
. Так, удаление его путем выполнения следующего разрешило ошибку для меня:
sudo apt-get remove --purge python3*
sudo apt autoremove
Затем я вижу command not found
как ожидалось:
$ junk
junk: command not found