Как узнать версию интерпретатора 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)