pip2: ошибка импорта: не удается импортировать имя RequirementParseError

#python #python-2.7 #pip

#python #python-2.7 #pip

Вопрос:

Я не могу заставить pip2 работать.

Мне нужен pip2, потому что мне нужно использовать более старую версию tensorflow, которая не поддерживается python3 pip. При попытке запуска pip2 install я получаю это:

 Traceback (most recent call last):
  File "/usr/bin/pip2", line 11, in <module>
    load_entry_point('pip==20.1.1', 'console_scripts', 'pip')()
  File "/usr/lib/python2.7/site-packages/pip/_internal/cli/main.py", line 73, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "/usr/lib/python2.7/site-packages/pip/_internal/commands/__init__.py", line 104, in create_command
    module = importlib.import_module(module_path)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/lib/python2.7/site-packages/pip/_internal/commands/install.py", line 24, in <module>
    from pip._internal.cli.req_command import RequirementCommand, with_cleanup
  File "/usr/lib/python2.7/site-packages/pip/_internal/cli/req_command.py", line 21, in <module>
    from pip._internal.req.constructors import (
  File "/usr/lib/python2.7/site-packages/pip/_internal/req/constructors.py", line 21, in <module>
    from pip._vendor.pkg_resources import RequirementParseError, parse_requirements
ImportError: cannot import name RequirementParseError
  

Я удалил pip2 и переустановил его. Также сделал то же самое для pip (3). Но это ничего не изменило. Я не смог найти ничего полезного в этом сообщении об ошибке и чувствую себя немного беспомощным. Есть идеи?

обновление забыл упомянуть, что я использую archlinux. Я установил его с pacman -S python2-pip

Комментарии:

1. Как вы его установили?

2. @jordanm пожалуйста, посмотрите мою правку

Ответ №1:

Вы пробовали устанавливать пакеты с помощью virtualenv? pacman? или использовать только pip? Какую версию tensorflow вы пытаетесь установить?

Вы можете попробовать установить библиотеки, используя последнюю версию pip2 virtualenv, используя следующие команды:

 pacman -S python2 python2-pip python-virtualenv

virtualenv -p python2 py2
. py2/bin/activate

pip install -U pip setuptools wheel
pip install tensorflow ipython
  

Вы также можете сначала попробовать удалить python2 и переустановить его с нуля:

 pacman -Rs python2 python2-pip
  

Комментарии:

1. Ваше первое решение работает, спасибо! Использование pip2 в этом virtualenv работает. Глобальный установленный pip из AUR, конечно, все еще сломан.

2. При сомнениях virtualenv.

Ответ №2:

Эта ссылка предполагает, что проблема может быть связана с версией setuptools, установленной в ~/.local . Возможно, вы можете это проверить.

Неважно, setuptools по какой-то причине был установлен в моем каталоге ~ /.local, заменив системную установку, я удалил это, и теперь pip2 работает нормально.

Комментарии:

1. Это говорит о том, что он полностью удалил setuptools.

Ответ №3:

Пожалуйста, посмотрите эту ссылку: https://askubuntu.com/questions/984868/error-in-installing-sudo-pip-install-v-protobuf-3-0-0a2

Библиотека отличается, но ошибка та же.