ImportError: невозможно импортировать имя main при запуске команды pip --version в windows7 32 бит
Я установил последний python (2.7.9) в комплекте с pip и setuptools для 32-битных окон. Я попытался переустановить пип, но проблема не устранена.
Здесь ошибка после запуска 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
Ответы
Ответ 1
Ошибка найдена в pip 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())
Ответ 2
Несмотря на то, что исходный вопрос, похоже, с 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>
Ответ 3
На 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())
Ответ 4
В Windows 10 я использовал следующие команды для понижения pip:
python -m pip uninstall pip
python -m pip install pip==9.0.3
Это также должно работать на Linux и Mac тоже.
Ответ 5
У меня была такая же проблема, но удалить и переустановить с помощью apt и pip у меня не получилось.
Я видел другое решение, которое представляет простой способ восстановить путь pip3:
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
Ответ 6
я исправил проблему, переустановив pip с помощью get-pip.py
.
- Загрузите get-pip с официальной ссылки: https://pip.pypa.io/en/stable/install/#upgrading-pip
- запустите его, используя commande:
python get-pip.py
.
И пункт исправлен и работает отлично.
Ответ 7
В 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
Объяснение:
Проблема вызвана изменениями в пути версии 10, перемещающими внутреннее пространство имен в main._internal
, а bin script, установленным homebrew, все еще смотрящим его со старого места (где он использовался быть в версии 9). Проблема и некоторые обсуждения https://github.com/pypa/pip/issues/5240
Ответ 8
Если у вас есть жесткая ссылка на pip в вашем PATH
(т.е. если у вас установлено несколько версий python), а затем вы обновляете pip, вы также можете столкнуться с этой ошибкой.
Решение состоит в том, чтобы снова создать жесткую ссылку. Или еще лучше, прекратите использование жестких ссылок и используйте программные ссылки.
Ответ 9
Для тех, у кого есть проблемы с использованием pip 10 с PyCharm, загрузите последнюю версию здесь
Ответ 10
Вы также можете застрять в версии 9.0
pip install --upgrade pip==9.0.3
Ответ 11
Работает на 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())
Сохраните файл и закройте его. И все готово!
Ответ 12
попробуй это
#!/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())
Ответ 13
Простое решение, которое работает с Ubuntu, но может решить проблему и в Windows:
Просто позвони
pip install --upgrade pip
Ответ 14
Это решило мою проблему в Ubuntu 18.04 при попытке использовать python3.6:
rm -rf ~/.local/lib/python3.6
Вы можете переместить папку в другое место, используя mv, вместо того, чтобы удалить ее, для тестирования:
mv ~/.local/lib/python3.6 ./python3.6_old