python ModuleNotFoundError: 'CommandNotFound'

когда я открыл терминал и $ pip install -U pip setuptools, Я получил сообщение об ошибке.

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'

Я использую python3.5, и его путь /usr/bin/python3.5

Я пытался найти пакет CommandNotFound, но я не могу найти его.

Как я могу зафиксировать эту ошибку?


[редактирование]: ОС Ubuntu 16.04.3 LTS

0
задан 2 September 2017 в 21:14

3 ответа

Ссылка

Решение: , В отличие от этого, я упомянул перед моим 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-executable был обоими способами /usr/bin/python3

, Когда я искал неправильное использование установки, где python3 и удалил

/usr/local/bin/python3.5

Затем, я произвел чистку и переустановил python3 и работал apt install -f. Таким образом, эта Ошибка исчезла.

Помните: никогда не устанавливайте материал из источника, если это могло бы быть в repos когда-то или, по крайней мере, удалить его, прежде чем Ваш диспетчер пакетов установит его.

0
ответ дан 2 November 2019 в 07:59

Добавьте еще один ответ, когда я также встретился с этой проблемой и, оказалось, решил ее.
Эта проблема произошла, когда я установил python3.7 из источника.

Проверка/usr/lib/command-not-found регистрирует, она пытается найти модуль CommandNotFound, который НЕ поставляется с python3.7, но ДЕЛАЕТ с Ubuntu в соответствии с каталогом /usr/lib/python3/dist-packages.

Что мы должны сделать, добавляет каталог к пути импорта Python:

  1. vi .bashrc (или .profile)
  2. добавьте строку
    export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.7/site-packages:/usr/lib/python3/dist-packages
    Обратите внимание, которое Вы, возможно, должны изменить /usr/local/lib/python3.7/site-packages к Вашему собственному каталогу.
  3. выход и source .bashrc (или .profile)
0
ответ дан 2 November 2019 в 07:59

Похоже, вы установили новую версию python3 из исходного кода и перелинковали символьную ссылку в /usr/bin/pyton3 из python3.5(или другой системной версии python, это python3.5 в ubuntu16.04) в /usr/local/bin/python3(или другое место, которое вы установили новая версия питона). Я решил проблему, выполнив следующие действия:

  1. проверьте ссылку на символ python3, используя ls -la /usr/bin/python3*.
  2. если он ссылается на /usr/local/bin/python3 или другое место, где вы установили новую версию Python, удалите его, используя sudo rm -f /usr/bin/python3 .
  3. повторно свяжите python3 с системной версией python3, используя `sudo ln -s python3.5 /usr/bin/python3', python3.5 — это системная версия python, вы можете подтвердить ее на шаге 1.

Затем ошибка исчезла при выполнении неизвестной команды.

0
ответ дан 13 May 2020 в 04:24

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

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