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
,
- Загрузите get-pip с официальной ссылки: https://pip.pypa.io/en/stable/installing/
- запустите его используя 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
скрипт устранил эту проблему.
Это решило мою проблему в 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())
Сохраните файл и закройте его. И все готово!