Команда pip3 не работает после обновления до версии pip 18.1.

Вопрос или проблема

После обновления pip3 с помощью $ pip3 install --upgrade pip pip3 перестал работать. И выдает следующую ошибку:

Трассировка (последний вызов последний):
      Файл "/usr/bin/pip3", строка 9, в <модуле>
        из pip импортировать main
    ImportError: невозможно импортировать имя 'main'

Та же проблема возникает снова, даже после удаления pip3 и его переустановки.

Где-то кто-то предложил изменить from pip import main на from pip._internal import main. Но все равно это не сработало.

Ваш системный исполняемый файл pip3 по-прежнему старый и находится по адресу /usr/bin/pip3:

$ ll `which pip3`
-rwxr-xr-x 1 root root 293 Май 16  2018 /usr/bin/pip3*

Попробуйте обновить с использованием sudo:

$ sudo pip3 install --upgrade pip

Тогда ваш обновленный исполняемый файл pip3 должен быть помещен в /usr/local/bin/pip3:

$ ll `which pip3`
-rwxr-xr-x 1 root root 216 Янв  8 20:46 /usr/local/bin/pip3*

и будет использоваться по умолчанию.

Ответ или решение

Проблема с pip3 после обновления до версии 18.1

После обновления pip3 с помощью команды:

$ pip3 install --upgrade pip

Вы столкнулись с ошибкой, которая выглядит следующим образом:

Traceback (most recent call last):
      File "/usr/bin/pip3", line 9, in <module>
        from pip import main
    ImportError: cannot import name 'main'

Данная ошибка указывает на проблему с импортом модуля в обновленной версии pip. Эта ситуация часто возникает после обновления, когда система по-прежнему ссылается на устаревшую версию pip, которая не совместима с новой структурой пакета.

Причина проблемы

В версии pip 18.1 и далее произошли изменения в структуре кода, в результате чего запись:

from pip import main

больше не работает. Вместо этого нужно использовать:

from pip._internal import main

Однако, если изменение не решает проблему, это может свидетельствовать о том, что система использует неверную версию pip3.

Решение проблемы

  1. Проверка и удаление старого pip:
    Вы уже упомянули, что удаляли pip3, но рекомендуется убедиться, что старые версии действительно удалены. Для этого вы можете выполнить следующие команды:

    $ which pip3
    $ sudo rm -rf /usr/bin/pip3
  2. Установка pip с правами суперпользователя:
    Попробуйте выполнить установку pip3 с правами администратора, чтобы убедиться, что новая версия будет установлена в правильное место. Сделайте это следующим образом:

    $ sudo pip3 install --upgrade pip

    После этого новое исполняемое файл pip3 должен находиться по пути /usr/local/bin/pip3.

  3. Проверка пути pip3:
    Убедитесь, что ваш системный путь (PATH) настроен так, чтобы при вызове pip3 использовалась новая версия. Выполните команду:

    $ ll `which pip3`

    Вы должны увидеть, что версия файла устарела и больше не соответствует старой версии. Убедитесь, что он указывает на:

    /usr/local/bin/pip3
  4. Проверка последней версии pip:
    После выполнения вышеуказанных действий проверьте установленную версию pip3:

    $ pip3 --version

    Если все было сделано правильно, вы должны увидеть актуальную версию pip.

Дополнительная диагностика

Если проблема сохраняется, рассмотрите следующие дополнительные шаги:

  • Очистка кеша pip:
    Иногда кешированные пакеты могут вызывать ошибки. Очистите кеш командой:

    $ pip3 cache purge
  • Создание виртуального окружения:
    Если вы работаете в проекте, попробуйте создать изолированное окружение с помощью venv:

    $ python3 -m venv myenv
    $ source myenv/bin/activate
    $ pip install --upgrade pip

Это поможет убедиться, что вы используете чистую среду без конфликтующих пакетов.

Заключение

Ваша проблема с pip3 и ошибкой при обновлении, скорее всего, связана с тем, что система по-прежнему ссылается на устаревшую версию pip. Убедитесь, что вы удалили старую версию, выполните установку с правами суперпользователя, а затем проверьте, что ваш системный путь настроен верно. Если вы выполните все предложенные шаги, ваша работа с pip3 должна восстановиться.

Оцените материал
Добавить комментарий

Капча загружается...