Вывод информации о версии Python в функции print
Вывод версии Python с помощью print
Основной способ: platform.python_version()
Самый простой и наглядный метод - использовать функцию python_version() из модуля platform. Она возвращает строку с номером версии (например, "3.12.1"). Одновременно с этим применяется print, чтобы отобразить результат.
import platform
print(platform.python_version())
Python echo print (аналог echo в python (print))
3.12.1
Python console print (вывод в консоль в python)
Этот вариант подходит для большинства задач: быстрого вывода версии в консоль, в лог или в интерфейс пользователя. Не требует дополнительных преобразований.
Как получить полную строку с номером версии и дополнительной информацией?
Модуль sys содержит атрибут version, который возвращает подробное описание: номер версии, дату сборки, компилятор и платформу.
import sys
print(sys.version)
Python вывод в 1 строку (вывод в одну строку в python)
3.12.1 (main, Dec 3 2024, 17:02:05) [GCC 13.2.0]
Python print version (вывод версии python)
Используется, когда требуется не только номер, но и контекст (например, для отладки).
Как вывести только мажорную и минорную версию (например, 3.12)?
Атрибут sys.version_info - это кортеж из пяти чисел: major, minor, micro, releaselevel, serial. Достаточно взять первые два.
import sys
major = sys.version_info.major
minor = sys.version_info.minor
print(f"{major}.{minor}")
Print set python (вывод множества в python)
3.12
Python print error (вывод ошибок в python)
Удобно для сравнения версий или вывода краткой метки в UI.
Как получить версию в виде кортежа чисел для программного использования?
platform.python_version_tuple() возвращает кортеж строк: (major, minor, micro).
import platform
ver_tuple = platform.python_version_tuple()
print(ver_tuple)
print('.'.join(ver_tuple))
Python print пробелы (вывод пробелов в print python)
('3', '12', '1')
3.12.1
Print python перевод (перевод строки в print python)
Полезно, когда нужно обрабатывать каждую часть отдельно (например, для проверки минимальной версии).
Как вывести версию, выполнив команду оболочки из кода?
Можно запустить python --version через subprocess и захватить вывод.
import subprocess
result = subprocess.run(['python', '--version'], capture_output=True, text=True)
print(result.stdout.strip())
Python print отступ (вывод с отступами в python)
Python 3.12.1
Print random python (вывод случайного числа в python)
Применяется в сложных скриптах, где нужно гарантированно получить версию интерпретатора, даже если модуль sys недоступен (крайне редко).
Как вывести номер билда (например, 3.12.1+) с информацией о релизе?
sys.version_info содержит поле releaselevel (alpha, beta, candidate, final) и serial. Можно сформировать кастомную строку.
import sys
vi = sys.version_info
release = {'alpha': 'a', 'beta': 'b', 'candidate': 'rc', 'final': ''}.get(vi.releaselevel, '')
print(f"{vi.major}.{vi.minor}.{vi.micro}{release}{vi.serial or ''}")
Python print текст и переменная (вывод текста и переменной в python)
3.12.1
(Для финальной версии releaselevel='final' и serial=0, поэтому вывод стандартный). Используется для идентификации пре-релизных сборок.
Типичные ошибки и их решения
- Ошибка NameError: name 'sys' is not defined. Решение: перед использованием добавить
import sys. - Ошибка AttributeError: module 'platform' has no attribute 'python_version' (крайне старая версия Python). Решение: использовать
sys.versionилиsys.version_info. - В Python 2 функция print не поддерживает синтаксис с круглыми скобками. Решение: добавить
from __future__ import print_functionв начале скрипта или перейти на Python 3. - Некорректный вывод при использовании subprocess на Windows. Решение: уточнить имя исполняемого файла (
pythonилиpy), либо использоватьsys.executableдля вызова того же интерпретатора.
Расширенные примеры вывода версии Python
Пример 1. Вывод версии в нескольких форматах с помощью f-строк
import sys, platform
print(f"Sys version: {sys.version}")
print(f"Platform version: {platform.python_version()}")
info = sys.version_info
print(f"Major.Minor: {info.major}.{info.minor}")
print(f"Micro: {info.micro}")
print(f"Hex: {sys.hexversion:#x}")
Sys version: 3.12.1 (main, Dec 3 2024, 17:02:05) [GCC 13.2.0] Platform version: 3.12.1 Major.Minor: 3.12 Micro: 1 Hex: 0x30c01f0
Показывает, как одновременно получить разные представления для отладки или логирования.
Пример 2. Проверка минимальной версии и вывод предупреждения
import sys
REQUIRED = (3, 10)
if sys.version_info[:2] < REQUIRED:
print(f"Версия Python {sys.version_info.major}.{sys.version_info.minor} устарела. Требуется {REQUIRED[0]}.{REQUIRED[1]}+")
else:
print(f"Версия {sys.version_info.major}.{sys.version_info.minor} подходит.")
Версия 3.12 подходит.
Часто используется в начале скриптов, чтобы гарантировать совместимость.
Пример 3. Вывод версии вместе с информацией об операционной системе
import platform
print(f"Python {platform.python_version()} на {platform.system()} {platform.release()}")
Python 3.12.1 на Linux 6.8.0-55-generic
Полезно при сборе диагностической информации.
Пример 4. Получение версии через subprocess с обработкой ошибок
import subprocess, sys
import sys
try:
result = subprocess.run([sys.executable, '--version'], capture_output=True, text=True, timeout=5)
if result.returncode == 0:
print('Версия из процесса:', result.stdout.strip())
else:
print('Ошибка выполнения:', result.stderr)
except subprocess.TimeoutExpired:
print('Таймаут при получении версии')
except Exception as e:
print('Неожиданная ошибка:', e)
Версия из процесса: Python 3.12.1
Гарантирует корректную работу даже в изолированных средах.
Пример 5. Вывод версии с указанием серийного номера для pre-release
import sys
v = sys.version_info
if v.releaselevel == 'final':
ver = f"{v.major}.{v.minor}.{v.micro}"
else:
ver = f"{v.major}.{v.minor}.{v.micro}-{v.releaselevel}{v.serial}"
print(ver)
3.12.1
Позволяет различать официальные и тестовые сборки.
Пример 6. Функция для кастомного форматирования версии
def python_version_string(style='short'):
import sys
v = sys.version_info
if style == 'short':
return f"{v.major}.{v.minor}"
elif style == 'full':
return f"{v.major}.{v.minor}.{v.micro}"
elif style == 'detailed':
return f"Python {v.major}.{v.minor}.{v.micro} ({v.major}.{v.minor}.{v.micro}-{v.releaselevel}{v.serial})"
else:
raise ValueError('Неизвестный стиль')
print(python_version_string('short'))
print(python_version_string('full'))
print(python_version_string('detailed'))
3.12 3.12.1 Python 3.12.1 (3.12.1-final0)
Удобно для использования в разных контекстах (логи, заголовки, метаданные).
Пример 7. Вывод версии в GUI (tkinter)
import tkinter as tk
import sys
root = tk.Tk()
root.title('Версия Python')
label = tk.Label(root, text=sys.version, font=('Arial', 12))
label.pack(padx=20, pady=20)
root.mainloop()
Создаётся окно с отображением версии - полезно для настольных приложений.
Пример 8. Вывод версии в лог-файл
import sys, logging
logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s - %(message)s')
logging.info(f'Python version: {sys.version}')
print('Версия записана в app.log')
Версия записана в app.log
Автоматически фиксирует версию при старте приложения.
Пример 9. Использование sys.hexversion для точного сравнения
import sys
print(f"Hex-версия: {sys.hexversion:#x}")
print(f"Десятичная: {sys.hexversion}")
MIN_HEX = 0x30a0000 # Python 3.10.0
if sys.hexversion >= MIN_HEX:
print("Python 3.10 или новее")
else:
print("Старая версия")
Hex-версия: 0x30c01f0 Десятичная: 51155568 Python 3.10 или новее
hexversion позволяет выполнять быстрые численные сравнения без разбора строк.