Вопрос-Ответ

How to identify which OS Python is running on

Как определить, на какой ОС запущен Python

На что мне нужно обратить внимание, чтобы узнать, нахожусь ли я в Windows или Unix и т.д.?

Переведено автоматически
Ответ 1
>>> import os

>>> os.name
'posix'

>>> import platform

>>> platform.system()
'Linux'

>>> platform.release()
'2.6.22-15-generic'

Вывод platform.system() выглядит следующим образом:


  • Linux: Linux

  • Mac: Darwin

  • Windows: Windows

Смотрите: platform — Доступ к идентифицирующим данным базовой платформы

Ответ 2

Вот системные результаты для Windows Vista!

>>> import os

>>> os.name
'nt'

>>> import platform

>>> platform.system()
'Windows'

>>> platform.release()
'Vista'

И для Windows 10:

>>> import os

>>> os.name
'nt'

>>> import platform

>>> platform.system()
'Windows'

>>> platform.release()
'10'
Ответ 3

Для справки, вот результаты на Mac:

>>> import os
>>> os.name
'posix'
>>> import platform
>>> platform.system()
'Darwin'
>>> platform.release()
'8.11.1'
Ответ 4

Краткий рассказ

Используйте platform.system(). Он возвращает Windows, Linux или Darwin (для OS X).

Долгая история

Есть три способа получить ОС на Python, у каждого из которых есть свои плюсы и минусы:

Метод 1

>>> import sys
>>> sys.platform
'win32' # could be 'linux', 'linux2, 'darwin', 'freebsd8' etc

Как это работает (исходный код): Внутренне он вызывает API ОС, чтобы получить имя ОС, определенное ОС. Смотрите Здесь различные значения для конкретной ОС.

Pro: Никакой магии, низкий уровень.

Недостатки: зависит от версии ОС, поэтому лучше не использовать напрямую.

Метод 2

>>> import os
>>> os.name
'nt' # for Linux and Mac it prints 'posix'

Как это работает (исходный код): Внутренне он проверяет, есть ли в Python модули, зависящие от ОС, называемые posix или nt.

Pro: Просто проверить, является ли это ОС POSIX

Против: нет различий между Linux и OS X.

Метод 3

>>> import platform
>>> platform.system()
'Windows' # For Linux it prints 'Linux'. For Mac, it prints `'Darwin'

Как это работает (исходный код): Внутренне он в конечном итоге вызовет внутренние API ОС, получит имя, зависящее от версии ОС, например 'win32', или 'win16', или 'linux1', а затем нормализуется до более общих имен, таких как 'Windows', или 'Linux', или 'Darwin', применив несколько эвристик.

Pro: лучший переносимый способ для Windows, OS X и Linux.

Против: разработчики Python должны поддерживать эвристику нормализации в актуальном состоянии.

Краткие сведения


  • Если вы хотите проверить, является ли ОС Windows, Linux или OS X, то наиболее надежным способом является platform.system().

  • Если вы хотите выполнять вызовы для конкретной ОС, но через встроенные модули Python posix или nt, тогда используйте os.name.

  • Если вы хотите получить исходное имя ОС, указанное самой ОС, то используйте sys.platform.

2023-10-12 12:45 python