Python — это один из самых популярных языков программирования. Он знаменит своей простотой и универсальностью. Простота означает, что этот язык может освоить практически любой желающий, а его универсальность говорит о том, что Python нашел применение буквально везде и всюду. Например, на нем создаются чат-боты в мессенджерах, пишется игровая логика и внутренняя логика сайтов. Почти все современные нейросети и модели ИИ обучаются и работают с использованием библиотек написанных на Python. И это только небольшая часть того, где используется этот язык.
Что такое Python и зачем его обновлять
Зачем обновлять Python? Вот несколько причин:
- Безопасность. Это одна из главных причин. В старых версиях со временем обнаруживаются различные уязвимости, которые могут использовать злоумышленники для доступа к важным данным.
- Новшества в синтаксисе. С ними код писать легче и быстрее. Например, в одной из прошлых версий была введена конструкция match – case, а в другой f-строки. Подробнее о версиях Python можно прочитать в этой статье.
- Поддержка библиотек. Для Python написано очень много библиотек, которые как раз и делают его таким универсальным. Можно даже сказать, что весь мир Python держится на библиотеках. Но некоторые разработчики библиотек со временем перестают поддерживать старые версии Python.
- Производительность. Python часто ругают за его медлительность. Конечно, по сравнению с C, Rust или Java он не такой быстрый, но разработчики постоянно работают над этим, и с каждым новым крупным релизом Python становится быстрее.
С причинами разобрались. Теперь посмотрим, как обновлять Python в разных операционных системах и с разными типами установок.
Обновление Python в Windows
Сначала узнаем версию уже установленного Python. Для этого открываем командную строку (cmd) или PowerShell и вводим там следующую команду:
python --version
Или эту:
python -V
Далее переходим на этот сайт и смотрим какая версия Python предлагается для установки. Если установлена старая версия, то скачиваем и запускаем установщик. Если предполагается переход на новую версию внутри одной ветки (например, с 3.12.1 до 3.12.2), то установщик предложит опцию Upgrade Now (обновить сейчас):

При этом старая версия Python будет заменена на новую. Если же происходит обновление на новую ветку (например, с 3.10 на 3.12), то появится опция Install Now (установить сейчас):

В этом случае новая версия Python будет установлена рядом со старой. Чтобы можно было управлять Python из командной строки обязательно нужно установить галочку в чекбокс Add python.exe to PATH. Если же необходимо настроить какие-то параметры типа путей установки или установить дополнительные компоненты, то выбираем опцию Customize Installation.
Для Windows есть довольно неплохой пакетный менеджер под названием Chocolatey. Он позволяет управлять программным обеспечением из командной строки. Установить его можно, следуя инструкциям на официальном сайте. Обновить Python с его помощью достаточно просто. Открываем командную строку от имени администратора и выполняем следующую команду:
choco upgrade python -y
Обновить Python можно и при помощи магазина Microsoft Store. Здесь еще проще: открываем магазин и вводим в поисковой строке слово Python. Выбираем нужную версию и нажимаем кнопку Get на открывшейся странице. Но тут важно понимать, что в Microsoft Store каждая версия Python публикуется как отдельное приложение, поэтому «обновить» в привычном смысле не получится — придется устанавливать каждую новую версию как отдельное приложение, а старые версии при необходимости удалять.
Обновление Python в macOS
Проверить версию Python в macOS можно, набрав в терминале команду:
python3 --version
Также как и в случае с Windows, в macOS Python можно обновить посредством официального установщика. Скачиваем установщик с того же сайта (файл с расширением .pkg) и запускаем его, а дальше все делаем так же, как и в Windows.
Еще Python можно обновить при помощи популярного менеджера пакетов для macOS под названием Homebrew. Для его установки нужно ввести в терминале следующую команду:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Далее надо прописать необходимые пути в переменной PATH. Делается это с помощью следующих трех команд:
echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /Users/user-name/.zprofile echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/user-name/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"
Вместо user-name следует вставить свое имя пользователя. После установки нужно обновить базу данных Homebrew:
brew update
А обновить Python можно командой:
brew upgrade python
Вот и все! Как видим, все довольно просто.
Обновление Python в Linux
Дистрибутивы Linux получают программное обеспечение через специальные репозитории. Для управления этим программным обеспечением существуют менеджеры пакетов, которые уже предустановлены в дистрибутив. Например, в Debian, Ubuntu, Linux Mint и им подобных используется APT, а в той же Fedora или Alma Linux — DNF.
Обычно Python предустановлен в большинстве дистрибутивов Linux и обновляется вместе со всеми остальными пакетами. Но далеко не все дистрибутивы могут похвастать наличием свежих пакетов в своих репозиториях. И если окажется, что версия Python там довольно старая, а нужна более свежая, то можно воспользоваться сторонним репозиторием и установить Python оттуда.
Проверить версию Python в Linux можно так же, как и в macOS:
python3 --version
Чтобы получить свежую версию Python, например, в Ubuntu можно использовать репозиторий Deedsnakes PPA, но его сначала необходимо подключить. Делается это такой командой:
sudo add-apt-repository ppa:deadsnakes/ppa
После добавления репозитория обновляем пакетную базу:
sudo apt update
И теперь можно установить нужную версию Python:
sudo apt install python3.12
А потом, при необходимости, можно производить минорное обновление установленной версии:
sudo apt upgrade python3.12
В дистрибутиве Fedora и ему подобных обычно содержатся достаточно свежие версии Python. Обновить именно Python можно так:
sudo dnf upgrade python3
А если нужна какая-то конкретная версия, то установить ее очень просто. Сначала обновляем систему:
sudo dnf update
И производим установку:
sudo dnf install python3.12
Также обновить Python можно, собрав его самую свежую версию из исходников. Перед сборкой устанавливаем необходимые зависимости. Вот так это делается в дистрибутивах семейства Debian:
sudo apt install build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
Скачиваем исходники с официального сайта:
sudo wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz
Распаковываем архив, переходим в папку с исходным кодом и подготавливаем его к компиляции:
sudo ./configure --enable-optimizations
Компилируем и устанавливаем:
sudo make altinstall
Обновление Python в BSD
Системы семейства BSD не обладают большой популярностью и их не так много разновидностей. Среди операционных систем этого семейства довольно популярна FreeBSD. Обновить Python в этой системе совсем не сложно. Если использовать пакетник pkg и производить с его помощью минорное обновление (например, с 3.11.1 до 3.11.2), то достаточно скомандовать:
pkg upgrade python311
Но если происходит мажорное обновление (например, с 3.11 до 3.12), то придется установить новую версию:
pkg install python312
И переустановить все зависимые пакеты:
for i in $(pkg query -g %n 'py311-*'); do pkg set -yn ${i}:py312-${i#py311-}; done
Также во FreeBSD можно использовать систему портов для обновления Python. Утилита portmaster постарается корректно заменить старую версию на новую и пересобирет все зависимости:
portmaster -o lang/python312 lang/python311
Эта команда заменит Python 3.11 на 3.12 и обновит все связанные порты.
Обновление Python в виртуальных средах
Виртуальные окружения — это инструмент, который позволяет изолировать проекты и их зависимости, предотвращая конфликты между библиотеками. Они создают отдельное пространство для каждого проекта, где можно установить свои версии пакетов и библиотек, не влияя на другие проекты или систему в целом. При обновлении Python в системе виртуальные окружения не изменяются автоматически. Это связано с тем, что они зависят от конкретной версии интерпретатора Python. Поэтому после обновления Python необходимо либо пересоздавать виртуальные окружения, либо настраивать их вручную.
venv
Venv, встроенный в стандартную библиотеку Python, — это стандартный инструмент для создания виртуальных сред. При обновлении Python на системной уровне venv-окружение не обновляется автоматически. Для обновления сначала нужно выйти из текущего окружения. Для этого используется следующая команда:
deactivate
Далее удаляем папку venv. В системах Linux и macOS вводится команда:
rm -rf venv
А в Windows применяем:
rmdir /s venv
Создаем новое окружение venv с более свежей версией Python:
python -m venv venv
Активизируйте новое окружение в Linux и macOS таким образом:
source venv/bin/activate
А в Windows таким:
venv\Scripts\activate
Обновляем зависимости. Используем команду:
pip install -r requirements.txt
Она нужна для установки всех необходимых библиотек из файла requirements.txt.
Соблюдение этих шагов гарантирует, что ваше окружение будет работать с актуальной версией Python и соответствующими версиями библиотек, что поможет избежать проблем совместимости. Подробнее про venv в Python можно прочитать в этой статье.
virtualenv
Virtualenv — сторонний инструмент, похожий на venv, но с расширенными возможностями, который также используется для создания виртуальных сред. Обновление окружения с его помощью осуществляется по аналогичной схеме:
1. Выходим из текущего окружения.
2. Удаляем папку старой среды.
3. Создаем новую среду в папке venv, указав путь к нужной версии Python в системе. Пример команды:
virtualenv -p /usr/bin/python3.12 venv
4. Активируем новую среду и обновляем зависимости.
Virtualenv позволяет явно указывать версию Python при создании окружения, что особенно полезно, если в системе установлено несколько версий Python.
Anaconda и Miniconda
Anaconda и Miniconda — это инструменты для управления пакетами и окружениями Python с пакетным менеджером conda, которые широко применяются в научных и исследовательских проектах, анализе данных и машинном обучении. Обновление Python в окружении Conda осуществляется без необходимости пересоздания среды. Активируем нужное окружение. Для этого вводим команду:
conda activate venv
Обновляем Python до последней версии при помощи следующей команды:
conda update python
Для установки конкретной версии Python применяем:
conda install python=3.12
Проверить версию Python можно уже знакомой командой:
python --version
Conda автоматически обновляет совместимые версии зависимостей, что значительно упрощает процесс. Однако, если обновление зависимостей приводит к конфликтам, можно использовать флаг —no-deps, чтобы обновить только Python, сохранив текущие версии библиотек. Подробнее про Anaconda и Miniconda можно прочитать на страницах официальной документации.
pyenv
Pyenv предоставляет возможность управления версиями Python на системном уровне, а pyenv-virtualenv интегрирует его с виртуальными окружениями. Процесс обновления не представляет из себя ничего сложного. Устанавливаем нужную версию Python:
pyenv install 3.12.0
Создаем новое виртуальное окружение:
pyenv virtualenv 3.12.0 venv
Активируем окружение:
pyenv activate venv
Pyenv особенно полезен для тестирования кода на различных версиях Python, не затрагивая системные настройки.
Poetry
Poetry — это современный инструмент для управления проектами на Python, который упрощает процесс установки, обновления и управления зависимостями. Он предоставляет удобный интерфейс командной строки и автоматизирует многие задачи, связанные с управлением проектами. Poetry интегрируется с системой виртуальной среды Python, что позволяет изолировать зависимости проекта от глобальной установки Python.
Чтобы обновить Python в проекте с Poetry, для начала проверяем наличие необходимой версии Python в системе или при ее отсутствии устанавливаем нужную версию любым удобным способом. Затем открываем терминал в папке проекта и вводим команду:
poetry env use python3.12
Эта команда говорит Poetry использовать необходимую версию Python. После этого запускаем переустановку зависимостей с помощью команды:
poetry install
Теперь Python в проекте обновлен. Чтобы проверить, что все получилось, выполняем команду:
poetry env info
В выводе ищем строку с указанием версии Python. Если там будет указана нужная версия, значит все прошло успешно.
Docker
Docker предлагает мощные инструменты для создания изолированных сред с заданной версией Python. Для обновления Python внутри Docker-контейнера надо для начала изменяем версию Python в файле Dockerfile. Например, меняем строку FROM python:3.10-slim на FROM python:3.12-slim. Потом необходимо пересобрать образ. Для этого используем команду:
docker build -t my_app
Запускаем новый контейнер:
docker run -it my_app
Docker обеспечивает стабильность и воспроизводимость окружения, независимо от версии Python на хост-системе. Поближе с Docker можно познакомиться, изучив официальную документацию.
Подведем итоги
- Обновление Python необходимо для повышения уровня безопасности, использования новых функций языка, поддержки актуальных библиотек и повышения производительности кода.
- В операционных системах Windows и macOS существуют различные способы обновления Python. В Windows можно воспользоваться официальным установщиком, пакетным менеджером Chocolatey или магазином Microsoft Store. Для macOS тоже доступен официальный установщик, а также пакетный менеджер Homebrew.
- В Linux применяются менеджеры пакетов, такие как APT в Debian/Ubuntu или DNF в Fedora, а также возможна сборка из исходников. В FreeBSD используется пакетный менеджер pkg или система портов с portmaster для автоматической пересборки зависимостей.
- Виртуальные окружения не обновляются автоматически при обновлении системного Python. Для обновления их необходимо отдельно пересоздавать или обновлять внутри среды. Это необходимо для обеспечения совместимости с новой версией языка и корректной работы зависимостей.
