Các giá trị có thể có từ sys.platform?


Câu trả lời:


108
┍━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┑
│ System              │ Value               │
┝━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━┥
│ Linux               │ linux or linux2 (*) │
│ Windows             │ win32               │
│ Windows/Cygwin      │ cygwin              │
│ Windows/MSYS2       │ msys                │
│ Mac OS X            │ darwin              │
│ OS/2                │ os2                 │
│ OS/2 EMX            │ os2emx              │
│ RiscOS              │ riscos              │
│ AtheOS              │ atheos              │
│ FreeBSD 7           │ freebsd7            │
│ FreeBSD 8           │ freebsd8            │
│ FreeBSD N           │ freebsdN            │
│ OpenBSD 6           │ openbsd6            │
┕━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┙

(*) Trước Python 3.3, giá trị cho mọi phiên bản Linux luôn là linux2; sau, nó là linux.


5
Bạn nên lập một danh sách về điều này.
Benjamin Paap 14/12/12

3
Có lẽ là câu trả lời hữu ích nhất của bài viết này. Bổ sung nghiệp vụ cho bảng tính nghệ thuật ASCII đầy phong cách.
Cecil Curry

1
Còn các macOShệ thống hiện tại thì sao? Họ vẫn quyết tâm darwin?
blubberdiblub

1
Tôi nhận được "linux"
vidstige

1
@blubberdiblub vâng.
Michael Leonard

34

Mac OS X (10.4, 10.5, 10.7, 10.8):

darwin

Linux (nhân 2.6):

linux2

Windows XP 32 bit:

win32

Các phiên bản trong ngoặc đã được kiểm tra - các phiên bản khác / mới hơn có thể giống nhau.


Điều gì về các phiên bản OS X cao hơn 10.5, chúng cũng được gắn nhãn 'darwin'? Còn các phiên bản nhân Linux cao hơn 2.6 thì sao? Phiên bản Windows cao hơn XP?
Dennis

@Dennis Đã làm rõ trong câu trả lời - các phiên bản được liệt kê là những phiên bản tôi đã kiểm tra. Tôi gần như chắc chắn tất cả các phiên bản OS X sẽ là darwin, tất cả 2.x linux kernel sẽ linux2, và Windows sẽ win32 hay win64 .. nhưng, tôi đã không kiểm tra
DBR

1
Các phiên bản Linux mới hơn có thể có "linux3" thay vì "linux2".
MarioVilas

4
@MarioVilas: Không, Python bị mắc kẹt với linux2 ngay cả đối với hạt nhân linux3 vì không có sự khác biệt từ quan điểm của Python.
Martijn Pieters

4
Một bản cài đặt Python 64 bit trên Windows 64 bit cũng sẽ xuất ra "win32". Sử dụng platform.system()có thể là một giải pháp ít nhầm lẫn hơn ("Windows" và "Linux").
Daniel F

22

Như những người khác đã chỉ ra, sys.platform bắt nguồn từ tên mà nhà cung cấp hệ thống đặt cho hệ thống của họ. Tuy nhiên, Python cũng thêm plat- vào sys.path, vì vậy bạn có thể xem tất cả các thư mục plat- * trong bản phân phối Python.

Điều này cung cấp cho bạn danh sách

aix3 aix4 Atheos beos5 darwin freebsd2 freebsd3 freebsd4 freebsd5 freebsd6 freebsd7 chung chung irix5 irix6 linux2 mac netbsd1 next3 os2emx riscos sunos5 unixware7

Tất nhiên, sys.platform có thể có các giá trị bổ sung, khi Python được biên dịch trên một hệ thống mà không có thư mục dành riêng cho nền tảng nào được tạo.

Từ đây .


5
Bằng cách đào bới trong sourcecode có một vài phổ biến hơn: win32, os2,unknown
Nicklas A.

7
Trên Python 3.3 linux2trở lên linux. nguồn
Michael Platings

3
@Deqing: đã sửa ba năm sau :)
xOneca

9

FreeBSD 7.0: freebsd7. FreeBSD8 nhưng bản dựng được thực hiện trên phiên bản trước, câu trả lời tương tự.

Vì vậy, hãy lưu ý rằng bạn nhận được nền tảng được sử dụng cho bản dựng, không nhất thiết là nền tảng bạn đang chạy.


2

Kể từ ngày 29 tháng 12 năm 2013, OS X 10.9.1 Mavericks vẫn được gắn nhãn Darwin.


1
Darwin là hạt nhân OS X. Để có được số phiên bản OS X, sử dụng platform.mac_ver ()
wolfd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.