Как обновить 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, может быть потенциальной причиной тупика или повреждения базы данных пакета.
Разве это не более эффективно?
- pip list -o перечисляет устаревшие пакеты;
- grep -v -i warning инвертированное совпадение на warning , чтобы избежать ошибок при обновлении
- cut -f1 -d1' ' возвращает первое слово - имя устаревшего пакета;
- tr "\n|\r" " " преобразует многострочный результат из cut в однострочный разделенный пробелами список;
- awk '' пропускает строки заголовка
- cut -d' ' -f1 выбирает первый столбец
- 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 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 (Командная строка):
Затем откройте Command Prompt (Командную строку). Во избежание проблем с уровнем доступа сделайте это от имени администратора. Для этого кликлинте правой кнопкой мыши и выберите пункт Run as administrator (Запустить от имени администратора):
В командной строке наберите cd \ , чтобы удостовериться, что в начальной точке только название диска:
Нажмите Enter. Вы увидите название диска C:\>
Найдите путь к Python, что является папкой, куда установлен Python.
В нашем случае путь приложения Python следующий:
После получения пути к Python наберите следующую команду в командной строке: cd , за которым следует путь к приложению Python.
В нашем случае это выглядит следующим образом:
Нажмите Enter, вы увидите:
Обновите 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:
При обновлении пакетов могут возникать различные ошибки и предупреждения, которые требуют индивидуального подхода. Например, если ошибка в отсутствующей зависимости, то установите необходимую зависимость для обновлённого пакета.
Читайте также: