Версия Python может влиять на работу кода, совместимость библиотек и доступность отдельных функций языка. Поэтому перед установкой зависимостей, запуском чужого проекта или поиском причины ошибки полезно убедиться, какая именно версия Python используется в системе.
В статье разберем, как быстро проверить версию Python разными способами: начнем с командной строки и встроенных инструментов, а затем посмотрим, как узнать версию интерпретатора в виртуальном окружении, IDE и Docker-контейнере.
Почему важно знать версию Python
Язык Python активно развивается и в новых его версиях постоянно появляются новые возможности. Добавляются новые функции, улучшается работа действующих компонентов, а устаревшие компоненты удаляются насовсем или заменяются на новые. Так, например, функция raw_input была заменена на input. Или еще можно привести пример того же print, который работал как оператор в Python 2, а в Python 3 стал уже функцией.
Если вы запустите код, написанный под Python 3.8, на Python 2.7, он почти наверняка не заработает из-за большого различия в синтаксисе, встроенных функциях и работе стандартной библиотеки. То же самое бывает и между точечными релизами внутри одной большой версии: код, использующий новые конструкции из Python 3.12, может не запуститься на 3.9.
Кроме того, многие библиотеки указывают минимальную версию Python, с которой они совместимы. Если вы устанавливаете библиотеку, которая требует Python 3.10, а у вас стоит 3.8 — система либо откажется ее устанавливать, либо установит старую версию, либо позже вы получите кучу ошибок при запуске. Поэтому проверка версии Python — это достаточно важная часть работы любого разработчика, создающего проекты на языке программирования Python.
Расскажем немного о структуре номеров версий Python. Для примера возьмем версию 3.12.3 и пробежимся по каждой ее составляющей:
- 3 — Мажорная версия (Major). Глобальное поколение языка. Изменение этой цифры означает кардинальные перемены и возможную потерю обратной совместимости. Например, старый код на Python 2 не запустится на Python 3 без переработки.
- 12 — Минорная версия (Minor). Функциональное обновление. Выпускается раз в год и добавляет в Python новые возможности, синтаксис и модули. При этом сохраняется обратная совместимость с прошлыми минорными версиями (код от 3.11 без проблем заработает на 3.12).
- 3 — Микро-версия или Патч (Micro/Patch). Сервисное обновление. Содержит только исправления ошибок (багов) и закрытие уязвимостей безопасности. Новые функции здесь не появляются.
Помимо этого, в нумерации версий могут встречаться суффиксы a, b, rc, dev. Что они означают? Эти суффиксы указывают на то, что данная версия еще находится в разработке. Подробнее о суффиксах:
- a — это альфа-версия. Разработка только началась и возможны серьезные ошибки.
- b — бета-версия. Здесь уже реализованы все функции, но могут встречаться некоторые некритичные ошибки.
- rc (pre, preview) — релиз-кандидат. Кандидат на финальную версию. Осталось только протестировать его перед выпуском.
- dev — это обозначение для сборок, выпускаемых в процессе разработки. Обычно они нестабильные.
Например, запись 3.15.0b4 обозначает четвертую бета-версию Python 3.15.0, а 3.15.0rc1 — это первый релиз-кандидат, ну, а 3.15.0 — это уже стабильная версия, выпуск которой запланирован на 1 октября 2026 года.
Как проверить версию Python в командной строке
Этот способ самый популярный и заключается в использовании команды python с флагом —version или с его краткой формой -V. Открываем терминал (в Linux) или командную строку (в Windows) и вводим следующую команду:
python --version
Или ту же команду, но с применением сокращенной формы флага:
python -V
Тут следует учитывать, что во многих операционных системах команда python может указывать на Python второй версии, который во многих системах сейчас удален и заменен на Python третьей версии. Поэтому надежнее будет использовать такую команду:
python3 --version
Или такую:
python3 -V
В обоих случаях в консоли получим примерно такой вывод:
Python 3.12.3
Если, например, попробовать использовать команду python —version в дистрибутиве Linux Mint версии 22.3, которая на данный момент является самой свежей, то в консоли получим следующее:
Команда «python» не найдена. Возможно, вы имели в виду: команда 'python3' из deb-пакета python3 команда 'python' из deb-пакета python-is-python3
В последней строчке нам дают подсказку установить пакет python-is-python3. Этот пакет создает символическую ссылку для команды python, которая начинает указывать на интерпретатор Python третьей версии. Это может быть полезным для запуска старых скриптов, использующих команду python вместо python3.
В ОС Windows для проверки версии Python, помимо вышеуказанных команд, удобно также использовать специальный лаунчер py:
py --version
Чтобы проверить конкретную версию (например, 3.12), надо в командной строке ввести:
py -3.12 --version
Далее рассмотрим еще один способ.
Интерактивный режим интерпретатора
Если ввести в терминале команду python3 без всяких флагов, то запустится сам интерпретатор. Вводим команду:
python3
И видим приветственное сообщение интерпретатора, где в самом начале указана версия:
Python 3.12.3 (main, Jun 19 2026, 12:46:00) [GCC 13.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
А также из этого сообщения можно узнать:
- версию языка (3.12.3);
- дату сборки;
- компилятор (GCC 13.3.0);
- платформу (linux).
Чтобы выйти из интерактивного режима, потребуется ввести команду exit() или применить горячие клавиши Ctrl+D (в Linux или macOS), либо Ctrl+Z и Enter (в Windows).
Этот способ может быть полезен в случае, когда необходимо убедиться, что запускается именно тот интерпретатор, который нужен, особенно если используется несколько версий Python или виртуальных окружений.
Модули sys и platform
Если версию Python необходимо узнать прямо в коде, то для этого можно использовать модуль sys. Этот модуль обеспечивает доступ к параметрам и функциям самого интерпретатора. Вот так легко и просто можно получить некоторые сведения о версии:
import sys print(sys.version)
Вывод будет примерно таким:
3.12.3 (main, Jun 19 2026, 12:46:00) [GCC 13.3.0]
Для более структурированного вывода информации о версии можно использовать sys.version_info:
import sys print(sys.version_info)
В консоли получим:
sys.version_info(major=3, minor=12, micro=3, releaselevel='final', serial=0)
Применение sys.version_info может быть полезно для проверки совместимости. Простой пример:
import sys
if sys.version_info >= (3, 10):
print("Эта версия подходит")
else:
print("Нужна версия 3.10 или выше")
Такой подход часто используют в установщиках, скриптах сборки и тестах, чтобы гарантировать, что код запускается на подходящей версии Python. Также для проверки версии Python можно использовать модуль platform. Он выдает лаконичный вывод только номера версии:
import platform print(platform.python_version())
Вывод:
3.12.3
Это бывает полезно, когда нужно сохранить только номер версии в лог, передать его в отчет или сравнить номера версий без лишней информации.
Проверка через pip
Pip — это стандартная система управления пакетами в языке программирования Python. Для проверки версии Python вводим такую команду:
pip --version
Или такую:
pip3 --version
Команда pip может указывать как на вторую версию Python, так и на третью. А вот pip3 всегда привязана к третьей версии. И в том и в другом случае вывод в консоли будет примерно следующий:
pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)
Показанный способ проверки не является основным, но он бывает полезен, когда вы хотите убедиться, что pip соответствует тому Python, который вы собираетесь использовать. Особенно актуально при работе с виртуальными окружениями: если pip указывает на один Python, а python —version — на другой, значит, что-то настроено не так.
Пакетные менеджеры
Python в Linux часто устанавливается через пакетные менеджеры. Менеджер apt — это удобный высокоуровневый менеджер, который умеет скачивать программы из интернета и сам решает проблемы с зависимостями, используя под капотом dpkg. Менеджер dpkg — это базовый низкоуровневый инструмент для работы с отдельными пакетами на системах вроде Debian и Ubuntu. В системах, использующих apt (Debian, Ubuntu, Linux Mint, Pop!_OS), версию Python легко узнать следующим образом:
apt show python3
В консоль будет выведено достаточно много информации. Помимо версии, будет показано имя пакета, его приоритет, информация о мейнтейнере и многое другое. Вот так примерно выглядит около половины консольного вывода для вышеприведенной команды:
Package: python3 Version: 3.12.3-0ubuntu2.1 Priority: important Section: python Source: python3-defaults Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Matthias Klose <doko@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 82,9 kB
Через утилиту dpkg можно посмотреть список всех установленных в системе пакетов, в названии или описании которых есть текст «python3». Для этого понадобится такая команда:
dpkg -l | grep python3
На выходе получится довольно внушительный список, в котором много раз попадается номер версии Python (3.12.3). Покажем только начало этого списка:
ii libpython3-dev:amd64 3.12.3-0ubuntu2.1 amd64 header files and a static library for Python (default) ii libpython3-stdlib:amd64 3.12.3-0ubuntu2.1 amd64 interactive high-level object-oriented language (default python3 version) ii libpython3.12-dev:amd64 3.12.3-1ubuntu0.15 amd64 Header files and a static library for Python (v3.12) ii libpython3.12-minimal:amd64 3.12.3-1ubuntu0.15 amd64 Minimal subset of the Python language (version 3.12) ii libpython3.12-stdlib:amd64 3.12.3-1ubuntu0.15 amd64 Interactive high-level object-oriented language (standard library, version 3.12) ii libpython3.12t64:amd64 3.12.3-1ubuntu0.15 amd64 Shared Python runtime library (version 3.12)
DNF — это современный пакетный менеджер, который умеет устанавливать, удалять и обновлять программное обеспечение с автоматическим решением зависимостей и конфликтов. В системах, которые используют DNF (Fedora, RHEL, Rocky Linux, РЕД ОС), версию Python можно посмотреть при помощи такой команды:
dnf info python3
Важно понимать, что эти способы показывают только версию пакета, а не версию активного интерпретатора. В системе может быть установлен пакет python3.11, но по умолчанию запускаться python3.12 из другого источника, например, из pyenv или из пользовательской сборки.
Поиск пути к интерпретатору
Иногда важно сначала найти, какой именно исполняемый файл Python используется. То есть, проще говоря, найти путь до интерпретатора Python. В дистрибутивах Linux и в macOS для этого можно пользоваться такой командой:
which python3
Или такой:
command -v python3
А потом уже узнавать версию, используя полученный путь. Если, допустим, вывод предыдущих команд был такой:
/usr/bin/python3
То узнать версию именно этого интерпретатора можно так:
/usr/bin/python3 -V
В Windows для того чтобы получить путь до исполняемого файла Python, используется следующая команда:
where python
Или такая (работает только в PowerShell):
Get-Command python | Select-Object -ExpandProperty Source
Зная точный путь, можно проверить версию именно этого интерпретатора, что особенно важно при наличии нескольких версий и сложных путей до исполняемого файла.
Менеджеры версий
Pyenv — это специализированный менеджер версий, созданный исключительно для Python. Он перехватывает команды вызова Python и подставляет нужную версию в зависимости от того, в какой папке вы находитесь. Узнать версию Python с его помощью очень просто. Вот такой командой можно узнать текущую версию:
pyenv version
А эта команда покажет все установленные через pyenv версии:
pyenv versions
Asdf — это универсальный (мульти-язычный) менеджер версий, который управляет вообще любыми инструментами через систему плагинов. Сам по себе asdf — это пустая оболочка. Пользователь должен установить плагин для нужного языка (например, Python, Ruby, Go), и только тогда инструмент сможет управлять его версиями. Узнать текущую версию Python через этот менеджер можно при помощи следующей команды:
asdf current python
А так выводится список всех установленных версий:
asdf list python
Эти менеджеры версий могут быть очень полезны при работе над проектами, где требуются разные версии Python или других языков.
Виртуальные окружения
В виртуальных окружениях работают те же самые команды python, pip и т.д., которые мы рассмотрели выше. Если виртуальное окружение активировано, то они будут ссылаться на интерпретатор этого окружения. В Windows, если используется cmd, окружение активируется следующей командой:
myenv\Scripts\activate.bat
В случае, если используется PowerShell, то вводить надо такую команду:
.\myenv\Scripts\Activate.ps1
Для Linux и macOS команда для активации виртуального окружения имеет такой вид:
source myenv/bin/activate
После активации проверить версию Python можно, например, такой уже знакомой командой:
python --version
В неактивированном окружении придется напрямую обращаться к исполняемому файлу Python. В Windows это делается так:
myenv\Scripts\python.exe --version
А в Linux и macOS так:
./myenv/bin/python --version
Docker-контейнеры
Docker-контейнер — это готовый, изолированный и легкий программный модуль. В нем есть все для работы программы: код, нужные файлы, библиотеки и настройки. Способ проверки версии Python зависит от того, запущен контейнер в данный момент или нет. Если контейнер остановлен, то можно использовать следующую команду:
docker run --rm <image_name> python --version
А если контейнер запущен, то эту:
docker exec -it <container_name_or_id> python --version
Также можно провести проверку через интерактивный режим внутри контейнера. Для этого надо сначала подключиться к терминалу контейнера:
docker exec -it <container_name_or_id> sh
А потом уже произвести проверку версии:
python -V
Выйти из контейнера можно через команду exit.
Подведем итоги
- Проверка версии Python перед запуском кода помогает избежать ошибок из‑за возможной несовместимости синтаксиса и библиотек.
- Для быстрой проверки версии Python используют команды python3 —version или py —version, а также интерактивный режим интерпретатора.
- Для программной проверки версии Python в коде применяют модули sys или platform — это удобно для автоматической валидации совместимости.
- При проверке версии Python через пакетные менеджеры надо учитывать, что отображается версия пакета, а не обязательно активного интерпретатора.
- Проверка версии Python с помощью менеджеров версий позволяет точно определить, какая версия задействована в текущем проекте.
- В виртуальных окружениях и Docker‑контейнерах проверку версии Python проводят внутри среды или после активации окружения, чтобы убедиться в корректности используемой версии.
