Как узнать версию интерпретатора Python

Раздел: Администрирование -> Управление средой

Основные методы определения версии Python

Наиболее распространённый способ - выполнить команду в терминале. Для этого используется ключ --version или сокращённый -V. Команда выводит строку с номером версии и дополнительной информацией (например, 3.10.12).

python --version

проверка версии python (проверка версии python (команда python --version))

Результат на системе с Python 3.10:

Python 3.10.12

Аналогично работает:

python -V
Python 3.10.12

Типичная ошибка

Команда может не сработать, если Python не установлен или не добавлен в переменную среды PATH. В таком случае появляется сообщение python: command not found (в Linux/macOS) или 'python' не является внутренней или внешней командой (в Windows). Решение - установить Python или указать полный путь к интерпретатору.

Как проверить версию Python, если команда python не найдена?

В некоторых дистрибутивах Linux команда python по умолчанию отсутствует, но доступен python3. Проверка через python3 --version позволяет получить версию установленного интерпретатора третьей ветки.

python3 --version
Python 3.9.18

Проблема: несколько версий Python

Если на системе установлены одновременно Python 2 и Python 3, команда python может указывать на старую версию. В таких случаях следует явно использовать python3 или настроить алиасы.

Как получить версию Python из программного кода?

Внутри скрипта Python удобно использовать модуль sys. Атрибут sys.version возвращает строку с полной информацией о версии, а sys.version_info - именованный кортеж, который можно сравнивать программно.

import sys
print("Версия:", sys.version)
print("Основная версия:", sys.version_info.major)
print("Минорная версия:", sys.version_info.minor)
Версия: 3.10.12 (main, Jun 11 2023, 05:26:02) [GCC 11.4.0]
Основная версия: 3
Минорная версия: 10

Ошибка при импорте модуля из-за версии

Некоторые модули могут быть недоступны в старых версиях Python. Перед использованием следует убедиться, что версия соответствует требованиям. Например, модуль zoneinfo появился только в Python 3.9.

Как проверить версию Python с помощью модуля platform?

Модуль platform предоставляет функцию platform.python_version(), возвращающую строку с номером версии. Этот способ удобен, когда нужно получить только номер без дополнительной информации.

import platform
print(platform.python_version())
3.10.12

Как узнать версию Python в среде разработки (IDE)?

В интегрированных средах разработки (PyCharm, VS Code, Jupyter) можно выполнить ту же команду во встроенном терминале или запустить простой скрипт с import sys; print(sys.version) в ячейке. В PyCharm также отображается версия интерпретатора в настройках проекта.

# В терминале IDE:
python --version

Как определить путь к интерпретатору Python?

Помимо версии, иногда требуется узнать полный путь к исполняемому файлу Python. Это можно сделать командами which python (Linux/macOS) или where python (Windows).

which python
/usr/bin/python

Внутри самого Python путь доступен через sys.executable:

import sys
print(sys.executable)
/usr/bin/python

Как проверить версию Python в виртуальном окружении?

При активированном виртуальном окружении (venv) команда python --version покажет версию интерпретатора, который был использован при создании окружения. Это полезно для проверки совместимости зависимостей.

# Активируем окружение
source myenv/bin/activate
python --version
Python 3.8.16

Как сравнить версию Python с минимально необходимой в скрипте?

Для гарантии совместимости можно проверять sys.version_info в начале скрипта и прерывать выполнение, если версия ниже требуемой.

import sys
if sys.version_info < (3, 8):
    sys.exit("Требуется Python 3.8 или новее")
print("Версия подходит")

Расширенные примеры проверки версии Python

Пример 1. Получение всех компонентов версии через sys.version_info

Пример
import sys
ver = sys.version_info
print("major   :", ver.major)
print("minor   :", ver.minor)
print("micro   :", ver.micro)
print("releaselevel:", ver.releaselevel)
print("serial  :", ver.serial)
# кортеж для сравнения
print("Текущая версия:", f"{ver.major}.{ver.minor}.{ver.micro}")
major   : 3
minor   : 10
micro   : 12
releaselevel: final
serial  : 0
Текущая версия: 3.10.12

Пример 2. Использование platform.python_version_tuple()

Пример
import platform
ver_tuple = platform.python_version_tuple()
print("Версия как кортеж:", ver_tuple)
print("Major:", ver_tuple[0], "Minor:", ver_tuple[1], "Micro:", ver_tuple[2])
Версия как кортеж: ('3', '10', '12')
Major: 3 Minor: 10 Micro: 12

Пример 3. Проверка версии внешнего интерпретатора с помощью subprocess

Если необходимо из скрипта проверить версию другого установленного Python (например, python3.9), можно вызвать его как внешнюю программу.

Пример
import subprocess
import sys

# проверяем версию текущего интерпретатора
result = subprocess.run([sys.executable, "--version"], capture_output=True, text=True)
print("Версия текущего интерпретатора:", result.stdout.strip())

# проверка конкретного пути
result2 = subprocess.run(["python3.9", "--version"], capture_output=True, text=True)
print("Версия python3.9:", result2.stdout.strip() if result2.returncode == 0 else "не найден")
Версия текущего интерпретатора: Python 3.10.12
Версия python3.9: Python 3.9.18

Пример 4. Условный импорт модулей в зависимости от версии

Пример
import sys

if sys.version_info >= (3, 9):
    import zoneinfo
    print("Модуль zoneinfo доступен")
else:
    # fallback для старых версий
    import pytz as zoneinfo
    print("Используется pytz вместо zoneinfo")
Модуль zoneinfo доступен

Пример 5. Проверка минимальной версии с осмысленным сообщением

Пример
import sys
import platform

required = (3, 8)
current = sys.version_info[:2]  # (major, minor)
if current < required:
    print(f"Ошибка: требуется Python {required[0]}.{required[1]} или новее, "
          f"установлена {platform.python_version()}")
    sys.exit(1)
else:
    print(f"Версия Python {platform.python_version()} подходит для запуска")
Версия Python 3.10.12 подходит для запуска

Пример 6. Использование os.popen (устаревший способ) для проверки версии

Пример
import os

with os.popen("python --version") as pipe:
    version = pipe.read().strip()
print("Версия через os.popen:", version)
Версия через os.popen: Python 3.10.12

Пример 7. Список установленных версий Python через pyenv (если используется)

Пример
# Команда в терминале:
pyenv versions
  system
  3.8.16
  3.9.18
* 3.10.12 (set by /home/user/.pyenv/version)

Проверка версии Python (команда python --version) - comments

En
проверка версии python (python)