Как обновить pip изнутри виртуальной среды?

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

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

12 ответов


pip это просто пакет PyPI как и любой другой; вы можете использовать его для обновления себя так же, как вы бы обновить любой пакет:

pip install --upgrade pip

в Windows рекомендовано команду - это:

python -m pip install --upgrade pip

более безопасный метод -запустите pip, хотя модуль python:

python -m pip install -U pip

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


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

исправления:

(inside virtualenv):easy_install -U pip

Я пробовал все эти решения, упомянутые выше, в 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)

в моем случае это работало из командной строки терминала в Debian Stable

python3 -m pip install --upgrade pip

чтобы заставить это работать для меня, мне пришлось детализировать в каталоге Python с помощью командной строки Python (на WIN10 из VS-кода). В моем случае это было в моем каталоге "AppData\Local\Programs\Python\python35-32". Оттуда я начал командовать...

python -m pip install --upgrade pip

это сработало, и я хорошо идти.


Откройте командную строку с правами администратора и повторите команду:

python -m pip install --upgrade pip

Я установил Python в C:\Python\Python36 поэтому я пошел в командную строку Windows и набрал " cd C:\Python\Python36 чтобы попасть в нужный каталог. Затем вошел в "python-m install --upgrade pip" все хорошо!


на моем коленях с Windows 7 правильный способ установить последнюю версию pip:

python.exe -m pip install --upgrade pip

Очень Удобно. Просто скачайте pip из https://bootstrap.pypa.io/get-pip.py . Сохраните файл в каком-нибудь forlder или dekstop. Я сохранил файл на диске D.Затем из командной строки перейдите в папку, в которую вы загрузили pip. Введите здесь

python -get-pip.py

Pip installation screenshot


pip версия 10 имеет проблему. Это проявится как ошибка:

ubuntu@mymachine-:~/mydir$ sudo pip install --upgrade pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

решение должно быть в venv вы хотите обновить, а затем запустите:

sudo myvenv/bin/pip install --upgrade pip

а не просто

sudo pip install --upgrade pip

Однострочная Программа Python
Лучший способ, который я нашел, - написать однострочную программу, которая загружает и запускает официальный скрипт get-pip. Код см. ниже.

официальные документы рекомендуют использовать curl для загрузки сценария get-pip, но поскольку я работаю в windows и не установлен curl, я предпочитаю использовать сам python для загрузки и запуска сценария.

вот однострочная программа, которую можно запустить через командную строку с помощью Python 3:

python -c "import urllib.request; exec(urllib.request.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"

эта строка получает официальный "get-pip.py" сценарий согласно установка и выполняет скрипт с помощью команды "exec".

для Python2 вы замените " urllib.по запросу" с "urllib2":

python -c "import urllib2; exec(urllib2.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"

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

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