Вывод информации о версии Python в функции print

Раздел: Основы 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 для вызова того же интерпретатора.
- Module print python (модуль print в python (функция))
- вывод без пробелов python (вывод без пробелов в python)
- оператор end в python (параметр end в функции print python)

Расширенные примеры вывода версии 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 позволяет выполнять быстрые численные сравнения без разбора строк.

Вывод версии Python - comments

En
Python print version (python)