Ответ 1
Попробуйте platform.dist
.
>>> platform.dist()
('Ubuntu', '11.10', 'oneiric')
У меня есть программа 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
Попробуйте platform.dist
.
>>> platform.dist()
('Ubuntu', '11.10', 'oneiric')
В принятом в настоящее время ответе используется устаревшая функция. Правильный способ сделать это с 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.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'
Или вы могли бы сделать это:
import sys
sys.platform
Он вернет: "linux2", или вы можете реализовать блок кода try..finally.
is_ubuntu = 'ubuntu' in os.getenv('DESKTOP_SESSION', 'unknown')
Выбирает, если вы запускаете Unity или Unity-2D, если это то, что вы ищете.