Провалился в "sudo pip"

Пожалуйста, помогите мне.

  • сервер: aws ec2
  • os: amazon linux
  • версия python: 2.7.10
$ pip --version
pip 7.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7)

Все в порядке.
Но...

$ sudo pip --version
Traceback (most recent call last):
  File "/usr/bin/pip", line 5, in 
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3020, in 
    working_set = WorkingSet._build_master()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 616, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 629, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 807, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==6.1.1

Ответ 1

У меня была та же проблема.

  • sudo which pip

  • sudo vim /usr/bin/pip

  • изменить любые pip==6.1.1 на pip==8.1.2 или версию, которую вы только что обновили.

Это работает для меня.

Ответ 2

Попробуйте следующее:

sudo easy_install --upgrade pip

Выполняя это, вы обновляете версию pip, которую использует sudoer.

Ответ 3

если у вас есть 2 версии pip, например /user/lib/pip, и/user/local/lib/pip принадлежит python 2.6 и 2.7. вы можете удалить /user/lib/pip и сделать ссылку pip = > /user/local/lib/pip.
вы можете видеть, что команды pip, вызванные из "pip" и "sudo", отличаются друг от друга. сделать их консистенцию можно исправить.

Ответ 4

Как вы можете видеть с помощью sudo, вы запускаете еще один pip script.

С sudo: /usr/bin/pip, которая является более старой версией;

Без sudo: /usr/local/lib/python2.7/site-packages/pip, которая является последней версией.

Ошибка, с которой вы столкнулись, иногда вызвана использованием разных менеджеров пакетов, общий способ ее решения - это уже предложенный @Ali:

sudo easy_install --upgrade pip

Ответ 5

Предположим, что в папке /usr/bin/pip есть две версии pp и /usr/local/bin/pip, где сначала присутствует пользователь sudo, а второй для обычного пользователя. Из пользователя sudo вы можете выполнить команду ниже, чтобы она использовала более высокую версию pip для установки.

/usr/local/bin/pip install jupyter

Ответ 6

  • pip --version. Помните версию pip. Будет полезно позже.
  • sudo which pip. Место должно быть чем-то вроде /usr/bin/pip -2.7
  • sudo nano /usr/bin/pip-2.7
  • Внутри nano изменить любые pip==6.1.1 на pip==9.0.1 или версию, найденную с помощью --version. Там не так много текста.
  • sudo cp /usr/bin/pip-2.7 /usr/bin/pip. Скопируйте эти файлы, чтобы сделать то же самое.

Мне нужно делать эти шаги каждый раз, когда я обновляю pip.: (

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

sudo easy_install --upgrade pip.