Я получаю сообщение об обновлении пипа

Всякий раз, когда я создаю venv, я получаю сообщение с просьбой обновить pip. Я запускаю команду для обновления, и она снова всплывает на другом venv. Как я могу сделать это постоянным.

Сообщение:

You are using pip version 9.0.1, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

Обновление: Только что получил рекомендацию прочитать этот возможный дубликат ответа: virtualenv использует обновленный системный пип по умолчанию

Это не решает мою проблему, хотя. Почему?

Мой pip3, похоже, уже обновлен:

C:\Users\mkupfer\Python-Sandbox\sibc-python-scripts>pip --version
pip 18.0 from c:\users\mkupfer\appdata\local\programs\python\python36-32\lib\sit
e-packages\pip (python 3.6)

C:\Users\mkupfer\Python-Sandbox\sibc-python-scripts>pip3 --version
pip 18.0 from c:\users\mkupfer\appdata\local\programs\python\python36-32\lib\sit
e-packages\pip (python 3.6)

C:\Users\mkupfer\Python-Sandbox\sibc-python-scripts>pip3 install --upgrade pip
Requirement already up-to-date: pip in c:\users\mkupfer\appdata\local\programs\p
ython\python36-32\lib\site-packages (18.0)

Решено

Решение: мне удалось все это исправить, используя virtualenv для создания новой виртуальной среды. Не уверен, что это ошибка в venv. Я просто буду использовать пакет, который работает в будущем. Спасибо @James Lim за ответ.

Ответ 1

Проблема заключается в том, что новые виртуальные среды используют старую версию pip. Обратите внимание, что pip устанавливается из исходного tarfile (или колеса), включенного в virtualenv, в каталог site-packages/virtualenv_support.

$ ls -l /path/to/site-packages/virtualenv_support
pip-9.1-py2.py3-none-any.whl

Быстрый способ обхода проблемы заключается в том, чтобы убедиться, что вы обновляете pip каждый раз, когда вы создаете новый virtualenv, например:

$ virtualenv venv
$ venv/bin/pip install -U pip

Кроме того, убедитесь, что у вас установлена последняя версия virtualenv. Согласно их примечаниям к выпуску, virtualenv==16 использует pip==10.

$ pip install -U virtualenv

Наконец, поскольку virtualenv ищет pip*.whl в virtualenv_support, это также будет работать:

$ mv /path/to/site-packages/virtualenv_support/pip*.whl{,bak}
$ pip wheel -w /path/to/site-packages/virtualenv_support/ 'pip==18'

Все новые virtualenvs будут использовать версию pip, которую вы установили в virtualenv_support. Однако это чувствует себя взломанным.

(Попытка с virtualenv==16 Это приводит к появлению всех новых virtualenvs с pip == 18.)

Ответ 2

Для меня похоже, что у вас несколько сред python, и в одном из них нет обновленного пипа. У вас есть 2 варианта:

  • перейдите к каждой из этих папок и обновите каждый пип
  • вы можете удалить все из них, переустановить и использовать virtualenv в будущем с правильным пиком
  • установите некоторую среду IDE (например, PyCharm), которая может автоматически обрабатывать это для вас и визуально отображать все проблемы

Ответ 3

Обновить pip из файла bat:

call .\venv\Scripts\activate
py -m pip install --upgrade pip
call deactivate

Или, если вы используете встроенный терминал VS Code

& venv/Scripts/activate.ps1
py -m pip install --upgrade pip

Ответ 4

при обновлении pip удалит старую версию, но если старая версия находится в другом месте, она не может, поэтому заканчивается двумя разными версиями pip. Проверьте свои установки на корневой PYTHONPATH. Также PYTHONPATH может быть не таким, как системный путь.

Ответ 5

Вот решение вашей проблемы.

Шаг 1 : запустите эту команду в вашей оболочке или ноутбуке Jupyter он безопасно загрузит get-pip.py из pypa

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

шаг 2 : запустить ниже код

python get-pip.py