9

Как обновить pip изнутри виртуального окружения?

14

Я могу обновлять пакеты, управляемые pip, но как мне обновить сам pip? Согласно команде pip --version, в моем виртуальном окружении установлена версия pip 1.1, и я хочу обновить ее до последней версии.

Какую команду нужно использовать для этого? Нужно ли использовать distribute или есть какая-то команда в pip или virtualenv для этого? Я уже пробовал команды pip update и pip update pip, но это не дало результатов.

5 ответ(ов)

0

Для Windows:

  1. Откройте командную строку (Command Prompt).
  2. Используйте следующую команду:
    python -m pip install --upgrade pip
    
  3. Не забудьте перезапустить редактор, чтобы избежать возможных ошибок.
  4. Вы можете проверить версию pip, используя команду:
    pip --version
    
  5. Если вам нужно установить конкретную версию pip, например, версию 18.1, используйте команду:
    python -m pip install pip==18.1
    
0

Если вы используете venv, то при обновлении pip install будет обновляться системный pip, а не pip вашего виртуального окружения. Чтобы избежать этой проблемы, вам нужно обновить также пакеты-инициализаторы pip. Используйте следующую команду:

python3 -m pip install --upgrade pip setuptools wheel

Эта команда обеспечит обновление pip, а также setuptools и wheel внутри вашего виртуального окружения.

0

В моем случае версия pip была повреждена, поэтому обновление само по себе не сработало.

Решение:

(внутри виртуального окружения): easy_install -U pip
0

Я попробовал все решения, упомянутые выше, на Debian Jessie. Они не сработали, потому что система просто берет последнюю версию, скомпилированную пакетным менеджером Debian, которая равна 1.5.6, что соответствует версии 6.0.x. Некоторые пакеты, которые используют pip как предусловие, не будут работать из-за этого, например, spaCy (которая требует опцию --no-cache-dir для корректной работы).

Таким образом, наилучший способ решить эти проблемы — запустить get-pip.py, скачанный с помощью wget с сайта или с использованием curl, как показано ниже:

 wget https://bootstrap.pypa.io/get-pip.py -O ./get-pip.py
 python ./get-pip.py
 python3 ./get-pip.py

Это установит актуальную версию, которая на момент написания этого решения равна 9.0.1, что значительно выше, чем предоставляет Debian.

 $ pip --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python2.7/dist-packages (python 2.7)
 $ pip3 --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python3.4/site-packages (python 3.4)
0

Ошибка, с которой вы столкнулись, связана с отсутствием прав доступа для обновления pip в системной директории (/usr/local/bin). На Ubuntu 18.04 и других системах на базе Linux, для установки пакетов в системные директории могут потребоваться права суперпользователя.

Вы можете решить эту проблему, используя опцию --user, которая позволяет устанавливать пакеты только для текущего пользователя, без необходимости повышать права. Попробуйте выполнить следующую команду:

pip install --upgrade pip --user

Эта команда обновит pip в вашем пользовательском окружении, и ошибка "Permission denied" должна исчезнуть.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь