Как обновить python в windows

Обновлено: 01.07.2024

Можно ли обновить все пакеты Python одновременно с помощью pip ?

Примечание : для этого есть запрос функции официальный трекер

Пока нет встроенного флага, но вы можете использовать

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

В более старой версии pip вы можете использовать это вместо:

grep должен пропускать редактируемые ("-e") определения пакетов, как это предлагается @jawache. (Да, вы можете заменить grep + cut на sed или awk или perl или . ).

Флаг -n1 для xargs предотвращает остановку всего, если не удается обновить один пакет (спасибо @andsens) ,

Самый короткий и простой на Windows.

Вы можете просто распечатать пакеты, которые устарели

Вот мой вариант ответа rbp, который обходит «редактируемые» и разрабатываемые дистрибутивы. У него есть два недостатка оригинала: он перезагружает и переустанавливает без необходимости; и ошибка в одном пакете предотвратит обновление каждого пакета после этого.

Этот вариант кажется мне более простым и читабельным:

Объяснение состоит в том, что pip list --outdated выводит список всех устаревших пакетов в этом формате:

В команде awk NR>2 пропускает первые две записи (строки), а выбирает первое слово в каждой строке (как предложил SergioAraujo, я удалил tail -n +3 , поскольку awk действительно может обрабатывать пропуски записей).

При использовании virtualenv и если вы просто хотите обновить пакеты Added до вашего virtualenv, вы можете сделать следующее:

Следующая строка может оказаться полезной:

(пункт> 20,0)

pip list --format freeze --outdated | sed 's/=.*//g' | xargs -n1 pip install -U

xargs -n1 продолжает работать, если возникает ошибка.

Если вам нужен более «мелкозернистый» контроль над тем, что пропущено и что вызывает ошибку, вы не должны добавлять флаг -n1 и явно определять ошибки, которые следует игнорировать, «обрезая» следующую строку для каждой отдельной ошибки:

| sed 's/^<First characters of the error>.*//'

Вот рабочий пример:

Это решение PowerShell для Python 3:

Это обновляет пакеты один за другим. Так что

После этого следует убедиться, что зависимости не нарушены.

Обновить все локальные пакеты; Вы можете использовать pip-review :

pip-review является вилкой pip-tools . Смотрите pip-tools проблему, упомянутую @knedlsepp . Пакет pip-review работает, но пакет pip-tools больше не работает.

pip-review работает в Windows начиная с версии 0.5.

Вы можете использовать следующий код Python. В отличие от pip freeze , он не выводит предупреждения и ошибки FIXME. Для пункта = 10.0.1

Более надежное решение

Для pip3 используйте это:

Для пункта, просто удалите 3s как таковые:

Странность OSX

По состоянию на июль 2017 года OSX поставляется с очень старой версией sed (дюжиной лет). Чтобы получить расширенные регулярные выражения, используйте -E вместо -r в решении выше.

Решение проблем с помощью популярных решений

  • Проблемы переносимости из-за изменения функций командной строки pip
  • Сбой xargs из-за общих сбоев дочерних процессов pip или pip3
  • Переполненное ведение журнала из вывода необработанных xargs
  • Опираясь на мост Python-to-OS, потенциально обновляя его 3

Подробности

[1] Протестировано и регулярно используется в кластере Linux 4.8.16-200.fc24.x86_64 и протестировано на пяти других разновидностях Linux / Unix. Он также работает на Cygwin64, установленном в Windows 10. Требуется тестирование на iOS.

[2] Чтобы увидеть анатомию команды более четко, это точный эквивалент вышеупомянутой команды pip3 с комментариями:

[3] Обновление компонента Python или PIP, который также используется при обновлении компонента Python или PIP, может быть потенциальной причиной тупика или повреждения базы данных пакета.

Разве это не более эффективно?

  1. pip list -o перечисляет устаревшие пакеты;
  2. grep -v -i warning инвертированное совпадение на warning , чтобы избежать ошибок при обновлении
  3. cut -f1 -d1' ' возвращает первое слово - имя устаревшего пакета;
  4. tr "\n|\r" " " преобразует многострочный результат из cut в однострочный разделенный пробелами список;
  5. awk '' пропускает строки заголовка
  6. cut -d' ' -f1 выбирает первый столбец
  7. xargs -n1 pip install -U берет 1 аргумент из канала слева от него и передает его команде для обновления списка пакетов.

Работает на Windows. Должно быть хорошо и для других. ($ - это каталог, в котором вы находитесь, в командной строке. Например. C: / Users / Username>)

Откройте текстовый файл, замените == на >= и выполните

Другой способ:

Мне также нравится метод pip-review:

Вы можете выбрать «а» для обновления всех пакетов; если одно обновление не удалось, запустите его снова и оно продолжится на следующем.

Версия для Windows после ознакомления с превосходной документацией для FOR Роба ван дер Вуде

pipupgrade поможет вам обновить вашу систему, локальные или пакеты из файла requirements.txt ! Он также выборочно обновляет пакеты, которые не нарушают изменения. pipupgrade также обеспечивает обновление пакетов, представленных в нескольких средах Python. Совместим с Python2.7 +, Python3.4 + и pip9 +, pip10 +, pip18 +, pip19 +.

ПРИМЕЧАНИЕ: я автор инструмента.

@ Ответ Раманы сработал для меня лучше всего из тех, кто здесь, но мне пришлось добавить несколько уловок:

Проверка site-packages исключает мои пакеты разработки, потому что они не находятся в системном каталоге site-packages. Команда try-except просто пропускает пакеты, которые были удалены из PyPI.

@endolith: Я тоже надеялся на легкий pip.install(dist.key, upgrade=True) , но похоже, что pip не предназначался для чего-либо, кроме командной строки (в документах не упоминается внутренний API и pip разработчики не использовали строки документации).

У меня была такая же проблема с обновлением. Дело в том, что я никогда не обновляю все пакеты. Я обновляю только то, что мне нужно, потому что проект может сломаться.

Поскольку не было простого способа обновить пакет за пакетом и обновить файл needs.txt, я написал этот pip-upgradeder , который также обновляет версии в вашем requirements.txt файле для выбранных пакетов (или всех пакетов).

Установка

Использование

Активируйте свой virtualenv (важно, потому что он также установит новые версии обновленных пакетов в текущем virtualenv).

cd в каталог вашего проекта, затем запустите:

Расширенное использование

Если требования размещены в нестандартном месте, отправьте их в качестве аргументов:

Если вы уже знаете, какой пакет вы хотите обновить, просто отправьте их в качестве аргументов:

Если вам нужно перейти на версию до выпуска / после выпуска, добавьте аргумент --prerelease в вашу команду.

Полное раскрытие: я написал этот пакет.

Довольно удивительный желток делает это легко.

Это может сделать много вещей, которые вы, вероятно, найдете полезными.

Используйте пакеты обновления awk: pip install -U $ (pip freeze | awk -F '[=]' '')

Обновление Windows PowerShell foreach ($ p in $ (pip freeze))

Самое простое и быстрое решение, которое я нашел в обсуждении проблемы pip, это:


Зачастую возникает необходимость обновления PIP. В данном руководстве будет дана поэтапная инструкция для обновления PIP в Windows.

Содержание статьи

Столкнуться с необходимостью обновления PIP можно при установке любого пакета, используя PIP.

обновление pip

Вы используете версию pip 19.3.1; однако, доступна версия 20.1.1. Вам стоит сделать обновление через команду ‘python -m pip install –upgrade pip’.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Для обновления PIP в Windows нужно открыть Windows Command Prompt, а затем набрать/скопировать туда указанную команду. Обратите внимание, что данный метод сработает только если у вас уже добавлен Python в Windows PATH. Ничего страшного, если вы не знаете, что это такое. Далее мы подробно разберем все шаги обновления PIP.

План обновления PIP в Windows

В поисковике Windows наберите Command Prompt (Командная строка):

командная строка windows

Затем откройте Command Prompt (Командную строку). Во избежание проблем с уровнем доступа сделайте это от имени администратора. Для этого кликлинте правой кнопкой мыши и выберите пункт Run as administrator (Запустить от имени администратора):

командная строка windows

В командной строке наберите cd \ , чтобы удостовериться, что в начальной точке только название диска:

командная строка windows

Нажмите Enter. Вы увидите название диска C:\>

командная строка windows

Найдите путь к Python, что является папкой, куда установлен Python.

В нашем случае путь приложения Python следующий:

путь python

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

В нашем случае это выглядит следующим образом:

командная строка windows

Нажмите Enter, вы увидите:

командная строка windows

Обновите PIP, использовав данную команду, затем нажмите Enter:

У меня установлен Python 2.7.11 на одной из моих станций LAB. Я хотел бы обновить Python до версии не ниже 3.5.

Как мне это сделать? Должен ли я предпочесть полностью удалить 2.7.11 и чем установить новую? Есть ли способ обновить его? Является ли обновление хорошей идеей?

3 ответа

Каждая дополнительная версия Python, а именно любая версия 3.x и 2.x, будет установлена ​​параллельно с другими версиями на вашем компьютере. Только версии исправлений обновят существующие установки.

Итак, если вы хотите сохранить установленный Python 2.7, просто дайте ему возможность установить новую версию с помощью установщика. Если вы хотите избавиться от Python 2.7, вы можете удалить его до или после установки более новой версии - в этом нет разницы.

Текущие установки Python 3 поставляются с модулем запуска py.exe , который по умолчанию устанавливается в системный каталог. Это делает его доступным из PATH, поэтому вы можете автоматически запускать его из любой оболочки, просто используя py вместо python в качестве команды. Это избавляет вас от необходимости помещать текущую установку Python в PATH самостоятельно. Таким образом, вы можете легко иметь несколько установок Python бок о бок, не мешая друг другу. При запуске просто используйте py script.py вместо python script.py Использовать лаунчер. Вы также можете указать версию, используя, например, py -3 или py -3.6 для запуска определенной версии, в противном случае программа запуска будет использовать текущее значение по умолчанию (обычно это самая последняя версия 3.x).

Используя панель запуска, вы также можете запускать скрипты Python 2 (которые часто несовместимы с Python 3), если вы решите сохранить установку Python 2.7. Просто используйте py -2 script.py для запуска скрипта.

Что касается пакетов PyPI, каждая установка Python поставляется со своей собственной папкой, в которую устанавливаются модули. Поэтому, если вы устанавливаете новую версию и хотите использовать модули, которые вы установили для предыдущей версии, вам придется сначала установить их для новой версии. Текущие версии установщика также предлагают вам установить pip ; он включен по умолчанию, поэтому у вас уже есть pip для каждой установки. Если вы явно не добавите установку Python в PATH, вы не сможете просто использовать pip . К счастью, вы также можете просто использовать средство запуска py.exe для этого: py -m pip запускает pip . Так, например, чтобы установить Beautiful Soup для Python 3.6, вы можете запустить py -3.6 -m pip install beautifulsoup4 .

Python 2.x и Python 3.x отличаются. Если вы хотите загрузить более новую версию Python 2, вы можете просто загрузить и установить более новую версию.

Если вы хотите установить Python 3, вы можете установить Python 3 отдельно, а затем изменить путь для Python 2.x на Python 3.x в панели управления> Все элементы панели управления> Система> Расширенные настройки системы> Переменные среды.

Вы можете использовать pip для обновления пакета. Это супер легко и рекомендуется тоже.

pip install python --upgrade ИЛИ pip install python -U

Вам не нужно удалять python27 . Просто установите путь к любой версии, которую вы хотите использовать в качестве основной, и используйте ее. Ссылка: нажмите здесь

Конечно, обновление - это хорошая идея, если вы находитесь на этапе обучения.

Пакет pip — это программа для установки и управления пакетами Python. Сам пакет pip в репозитории вашего дистрибутива существует в двух версиях:

  • для Python 3 (называется python3-pip или python-pip в зависимости от того, какая версия Python является версией по умолчанию для вашего дистрибутива)
  • для Python 2 (называется python2-pip или python-pip в зависимости от того, какая версия Python является версией по умолчанию для вашего дистрибутива)

С помощью pip можно устанавливать пакеты Python. Это вносит некоторую путаницу, поскольку эти же самые пакеты можно устанавливать из стандартного репозитория вашего дистрибутива. Но в репозитории имеются далеко не все пакеты Python — только те, которые сопроводители дистрибутива упаковали в установочный пакет этого дистрибутива. Следовательно, через pip можно установить намного больше разных пакетов Python (если они вам нужны).

Как обновить пакеты с pip

Но использование pip имеет свои неудобства — программа не отслеживает выход новых версий и не выполняет их автоматическое обновление.

Поэтому пакеты нужно обновлять вручную и по одному следующими командами:

Или более короткий вариант:

Проблема здесь в том, чтобы узнать вышла ли уже новая версия пакета?

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

Как с pip показать пакеты, для которых вышли новые версии

С помощью pip можно проверить выход новых версий. К счастью, это для этого не нужно вводить имя каждого пакета по отдельности.

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


Вариант для Python3:

Вариант для Python2:


Программа проверяет версии для всех пакетов Python. Обычно их довольно много, поэтому программа может работать довольно долго — несколько минут.

Как в pip обновить сразу все пакеты

Можно посмотреть список устаревших пакетов и потом по одному обновлять их командой, которая дана ещё чуть выше. Но это можно сделать проще.

Следующая большая команда найдёт список всех устаревших пакетов Python и обновит их:


В сердце этой команды лежит предыдущая медленная команда pip list -o, поэтому выполнение займёт определённое время.

Если вы учитесь программировать на Python3, то вашему сердцу может быть ближе следующий вариант. Создайте файл с именем xx.py и скопируйте в него:

Сохраните и закройте этот файл. Когда вы захотите обновить ваши пакеты Python, то запустите этот скрипт следующим образом:

Есть ещё парочка способов выполнить полное обновление системы, пример команды:

Её принцип заключается в том, что она составляет список всех пакетов Python, а затем каждый из них пытается обновить. Если обновления нет — то ничего страшного, просто происходит переход к следующему пакету из списка. Если обновление есть, то оно устанавливается и вновь происходит переход к следующему пакету из списка, пока программа полностью не завершит свою работу.

Конечный результат такой же — будут обновлены все пакеты Python.

У предыдущей команды есть ещё один вариант:

Принцип работы абсолютно такой же.

Заключение

pip обновляет пакеты только одной версии Python — то есть для Python3 или для Python2 — это зависит от того, какая версия Python является версией по умолчанию для вашего дистрибутива.

Если вы также хотите обновить пакеты для другой версии, то в предыдущих командах везде заменяйте pip на pip2 или pip3 — в зависимости от вашего дистрибутива.

Или вот вариант ещё проще, следующие команды одинаково сработают абсолютно в любых дистрибутивах, так как в них версии указаны явно (при условии, что pip2 и pip3 установлены в вашей системе).

Для обновления всех пакетов Python3:

Для обновления всех пакетов Python2:


При обновлении пакетов могут возникать различные ошибки и предупреждения, которые требуют индивидуального подхода. Например, если ошибка в отсутствующей зависимости, то установите необходимую зависимость для обновлённого пакета.

Читайте также: