2011-12-01 33 views
8

tôi có một chương trình Python 3.2 chạy như thế này:Xác định nếu trăn đang được chạy trong Ubuntu Linux

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

Và trên cửa sổ nó sẽ trả về:

Windows 7

Nhưng trên Ubuntu và những người khác nó trả về:
Linux 3.0.0-13-generic

Tôi cần một cái gì đó như:

Ubuntu 11.10 hoặc Mint 12

+2

http://docs.python.org/library/platform.html#platform.linux_distribution – Gazler

+0

Cảm ơn, tôi thực sự nên đọc các tài liệu nhiều hơn, ehh? – triunenature

Trả lời

5

Hãy thử platform.dist.

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

platform.dist() hiện đã lỗi thời, chúng ta nên sử dụng platform.linux_distribution() (chỉ cần đọc tài liệu, nhờ @Gazler) – triunenature

+0

@triunenature: Không có cảnh báo phản đối nào tồn tại trong Python 3. http: // docs .python.org/py3k/library/platform.html # platform.dist –

+1

Điều cần biết: DI thực sự cần đọc các tài liệu đó cẩn thận hơn. – triunenature

0

Hoặc, bạn có thể làm điều này:

import sys 
sys.platform 

Nó sẽ trở lại: 'linux2', hoặc bạn có thể thực hiện try..finally khối mã.

+0

yea, nhưng vấn đề, nó chỉ trả về linux2, nó không cung cấp cho tôi bất kỳ chi tiết cụ thể ... và mục tiêu ở đây là rất cụ thể. Ubuntu 10.04, hoặc không có gì, nhưng chỉ cần nói với tôi rằng Linux của nó, hoặc postox không giúp được – triunenature

6

Câu trả lời hiện được chấp nhận sử dụng chức năng không dùng nữa. Cách thích hợp để làm điều này như của Python 2.6 và sau này là:

import platform 
print(platform.linux_distribution()) 

các tài liệu không nói nếu chức năng này có sẵn trên nền tảng không phải Linux, nhưng trên desktop Windows địa phương của tôi, tôi nhận được:

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

Ngoài ra còn có này, để làm một cái gì đó tương tự như trên máy Win32:

>>> print(platform.win32_ver()) 
('post2008Server', '6.1.7601', 'SP1', 'Multiprocessor Free') 
-1
is_ubuntu = 'ubuntu' in os.getenv('DESKTOP_SESSION', 'unknown') 

Chọn lựa tiêu biểu lên nếu bạn đang chạy ở U nity hoặc Unity-2D nếu đó là những gì bạn đang tìm kiếm.

+1

Điều gì sẽ xảy ra nếu bạn đang chạy trên một thiết lập máy chủ ubuntu mà không có máy tính để bàn? –

+0

Ý tưởng không phải là tìm kiếm ubuntu, nó cho việc lập bản đồ mà hệ điều hành đang được chạy. – triunenature

0

Có vẻ như platform.dist()platform.linux_distribution()deprecated in Python 3.5 and will be removed in Python 3.7. Các công trình sau đây trong python 2/3

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

Giá trị mẫu trở

>>> platform.platform() 
'Linux-4.10.0-40-generic-x86_64-with-Ubuntu-16.04-xenial' 
Các vấn đề liên quan