Работаете с Python и заметили, что ваши библиотеки устарели? Обновлять их вручную — это как чистить картошку перед ужином: долго, скучно и хочется, чтобы кто-то сделал это за вас. К счастью, есть способ автоматизировать процесс! Сегодня я расскажу, как одним махом обновить все установленные пакеты в Python с помощью pip — без лишних телодвижений и с минимумом кода. Проверено на Windows, но с небольшими правками работает и на других системах.
Начнем с простого — а зачем это нужно?
Устаревшие библиотеки — это не только риск упустить новые фичи, но и потенциальные баги или уязвимости. А если вы, как я, ленитесь проверять каждый пакет по отдельности, автоматизация — ваш лучший друг.
Способ 1: Команда в один клик (для Windows CMD)
Если вы любите командную строку и не боитесь её магии, вот рабочая команда для Windows:
for /F "skip=2 tokens=1" %i in ('pip list --outdated') do pip install --upgrade %i
Как это работает?
1. pip list —outdated — выводит список всех устаревших пакетов с их версиями.
Пример вывода:
Package Version Latest Type ---------- ------- ------ ----- numpy 1.21.0 1.23.5 wheel pandas 1.3.0 1.5.3 wheel
2. for /F «skip=2 tokens=1» %i in (‘…’) — это цикл в CMD, который пропускает первые две строки (заголовки) и берёт только имя пакета из первой колонки.
pip install —upgrade %i — обновляет каждый пакет до последней версии.
Как запустить?
Откройте CMD (Win + R → cmd → Enter).
Вставьте команду и нажмите Enter.
Смотрите, как терминал оживает, а пакеты обновляются один за другим.
Лайфхак: Если вы не в виртуальном окружении, запустите CMD от имени администратора, чтобы обновить глобальные библиотеки.
Способ 2: Для любителей PowerShell
Если вы предпочитаете PowerShell (или CMD вас подвела), вот аналогичная команда:
pip list --outdated | Select-Object -Skip 2 | ForEach-Object { $_.Split()[0] | ForEach-Object { pip install --upgrade $_ } }
где:
Select-Object -Skip 2 — убирает заголовки.
$_.Split()[0] — берёт имя пакета.
Всё остальное — как в CMD, но с PowerShell-шармом.
Способ 3: Python-скрипт для полного контроля
Не доверяете командным строкам? Держите маленький скрипт! Он делает то же самое, но с возможностью доработки под ваши нужды:
import subprocess # Получаем список устаревших пакетов result = subprocess.run(["pip", "list", "--outdated"], capture_output=True, text=True) lines = result.stdout.splitlines() # Обновляем каждый пакет, пропуская заголовки for line in lines[2:]: package = line.split()[0] print(f"Updating {package}...") subprocess.run(["pip", "install", "--upgrade", package])
Сохраните это как update_all.py и запустите:
python update_all.py
Подводные камни
Виртуальные окружения: Если вы в venv или conda, активируйте окружение перед запуском:
venv: путь\к\venv\Scripts\activate
conda: conda activate имя_окружения
Конфликты зависимостей: Иногда обновление ломает совместимость. Держите под рукой pip install имя==старая_версия для отката.
Ошибки компиляции: Если какой-то пакет (например, tts) требует Microsoft Visual C++, установите Build Tools (ссылка).
Итог
С помощью одной команды или пары строк кода вы можете обновить все библиотеки Python и чувствовать себя настоящим автоматизатором. Мой фаворит — команда для CMD: просто, быстро и без лишнего шума. Попробуйте, и пусть ваши пакеты всегда будут свежими, как утренний кофе (и это не шутка, кстати — у меня скрипт для командной строки давно установлен в планировщике на 8.00)!
А как вы обновляете свои библиотеки? Делитесь в комментариях!
И как всегда — в случае возникновения вопросов пишите на почту, или в Телеграм 😉
Support the Blog!
Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️