Подтвердить что ты не робот

Определите, запущен ли python в Ubuntu Linux

У меня есть программа Python 3.2, которая работает следующим образом:

import platform
sysname = platform.system()
sysver = platform.release()
print(sysname+" "+sysver)

И в окнах он возвращает:

Windows 7

Но на Ubuntu и других он возвращает:
Linux 3.0.0-13-generic

Мне нужно что-то вроде:

Ubuntu 11.10 или Mint 12

4b9b3361

Ответ 1

Попробуйте platform.dist.

>>> platform.dist()
('Ubuntu', '11.10', 'oneiric')

Ответ 2

В принятом в настоящее время ответе используется устаревшая функция. Правильный способ сделать это с Python 2.6 и более поздним:

import platform
print(platform.linux_distribution())

В документации не указано, доступна ли эта функция на платформах, отличных от Linux, но на моем локальном рабочем столе Windows я получаю:

>>> import platform
>>> print(platform.linux_distribution())
('', '', '')

Там также это, чтобы сделать что-то подобное на машинах Win32:

>>> print(platform.win32_ver())
('post2008Server', '6.1.7601', 'SP1', 'Multiprocessor Free')

Ответ 3

Обновлен, чтобы ссылаться на то, что данная функция планируется удалить в 3.8

Похоже, что platform.dist() и platform.linux_distribution() устарели в Python 3.5 и будут удалены в Python 3.8. Следующие работы в Python 2/3

import platform
'ubuntu' in platform.platform().lower()

Пример возвращаемого значения

>>> platform.platform()
'Linux-4.10.0-40-generic-x86_64-with-Ubuntu-16.04-xenial'

Ответ 4

Или вы могли бы сделать это:

import sys
sys.platform

Он вернет: "linux2", или вы можете реализовать блок кода try..finally.

Ответ 5

is_ubuntu = 'ubuntu' in os.getenv('DESKTOP_SESSION', 'unknown')

Выбирает, если вы запускаете Unity или Unity-2D, если это то, что вы ищете.