ImportError: невозможно импортировать имя main при запуске команды pip --version в 32-битной Windows7

Я установил последнюю версию Python (2.7.9) в комплекте с pip и setuptools для 32-битной Windows. Я попытался переустановить pip, но проблема сохраняется.

Вот ошибка после запуска pip --version в Администратор cmd:

Traceback (most recent call last):
 File "D:\Python\lib\runpy.py", line 162, in _run_module_as_main
  "__main__", fname, loader, pkg_name)
 File "D:\Python\lib\runpy.py", line 72, in _run_code 
  exec code in run_globals
 File "D:\Python\Scripts\pip.exe\__main__.py", line 5, in <module>
ImportError: cannot import name main

9 ответов

Ошибка найдена в пипе 10.0.0.

В Linux вам нужно изменить файл: /usr/bin/pip из:

from pip import main
if __name__ == '__main__':
    sys.exit(main())

к этому:

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

Хотя первоначальный вопрос, похоже, относится к 2015 году, эта "ошибка", по-видимому, влияет на пользователей, устанавливающих pip-10.0.0 также.

Обходной путь не модифицировать pip, однако, чтобы изменить способ вызова pip. Вместо звонка /usr/bin/pip вызов pip через сам Python. Например, вместо нижеуказанного:

pip install <package>

Если из Python версии 2 (или по умолчанию вызывается бинарный Python python) делать:

python -m pip install <package>

или если из Python версии 3:

python3 -m pip install <package> 

На Ubuntu Server 16 у меня та же проблема с python27. Попробуй это:

+ Изменить

from pip import main
if __name__ == '__main__':
    sys.exit(main())

к

from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

В Windows 10 я использовал следующие команды для понижения pip:

python -m pip uninstall pip
python -m pip install pip==9.0.3

Оно работает.

У меня была такая же проблема, но удалить и переустановить с помощью apt и pip у меня не получилось.

Я видел другое решение, которое представляет простой способ восстановить путь pip3:

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

Я исправил проблему, переустановив пип с помощью get-pip.py,

  1. Загрузите get-pip с официальной ссылки: https://pip.pypa.io/en/stable/installing/
  2. запустите его используя commande: python get-pip.py,

И пункт исправлен и работает отлично.

На MacOS, если вы установили Python через Homebrew, измените строку в /usr/local/opt/python/libexec/bin/pip

от

from pip.internal import main

в

from pip._internal import main

Или используйте этот лайнер: sed -i '' "s/from pip import main/from pip._internal import main/" /usr/local/opt/python/libexec/bin/pip

Объяснение:

Проблема вызвана изменениями в pip версии 10, перемещающими внутреннее пространство имен под main._internal и скрипт bin, установленный homebrew, по-прежнему смотрящий из старого места (где он был в версии 9). Проблема и некоторые обсуждения https://github.com/pypa/pip/issues/5240

Если у вас есть жесткая ссылка в вашем PATH (т.е. если у вас установлено несколько версий Python), а затем вы обновляете pip, вы также можете столкнуться с этой ошибкой.

Решение состоит в том, чтобы снова создать жесткую ссылку. Или, что еще лучше, прекратите использовать жесткие ссылки и используйте мягкие ссылки.

В Windows 10 у меня была такая же проблема. PIP 19уже был установлен в моей системе, но не появлялся. Ошибка былаNo Module Found.

python -m pip uninstall pip
python -m pip install pip==9.0.3

Понижение pip до 9.0.3 у меня все работало нормально.

В нашем случае, в 2020 году с использованием Python3, решение этой проблемы заключалось в перемещении установки Python в cloud-init сценарий запуска, создавший виртуальную машину.

Мы столкнулись с этой же ошибкой, когда пытались установить Python, используя скрипты, которые вызывались пользователями позже в жизненном цикле виртуальной машины, но перемещали тот же установочный код Python в cloud-init скрипт устранил эту проблему.

Откройте свой терминал linux.

hash -d pip

Это решило мою проблему в ubuntu 18.04 при попытке использовать python3.6:

rm -rf ~/.local/lib/python3.6

Вы можете переместить папку в другое место, используя mv вместо ее удаления, для тестирования:

mv ~/.local/lib/python3.6 ./python3.6_old

Для тех, кто испытывает аналогичные проблемы при использовании pip 10 с PyCharm, загрузите последнюю версию здесь

Простое решение, которое работает с Ubuntu, но может решить проблему и в Windows:

Просто позвони

pip install --upgrade pip

Попробуй это

#!/usr/bin/python
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.i
try:
    from pip import main
except ImportError:
    from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

Работает на Ubuntu 16.04. Шаг 1:

 sudo gedit /home/user_name/.local/bin/pip

файл открывается с содержанием:

#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

Изменить main в __main__ как показано ниже:

#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from pip import __main__

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(__main__._main())

Сохраните файл и закройте его. И все готово!

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