940 Stimmen

Python: Auf welchem Betriebssystem laufe ich?

Was muss ich beachten, um festzustellen, ob ich unter Windows oder Unix usw. arbeite?

4 Stimmen

Siehe ( bugs.python.org/issue12326 ) für Details!

7 Stimmen

Hier ist eine verwandte Frage: Name der Linux-Distribution prüfen .

4voto

Elden Punkte 55

In derselben Ader....

import platform
is_windows=(platform.system().lower().find("win") > -1)

if(is_windows): lv_dll=LV_dll("my_so_dll.dll")
else:           lv_dll=LV_dll("./my_so_dll.so")

15 Stimmen

Dies ist problematisch, wenn Sie einen Mac verwenden, da platform.system() auf einem Mac "Darwin" zurückgibt und "Darwin".lower().find("win") = 3.

0 Stimmen

Is_windows = platform.system().lower().startswith("win") oder False

3voto

Wenn Sie mit macOS X arbeiten und Folgendes ausführen platform.system() Sie erhalten Darwin weil macOS X auf dem Darwin-Betriebssystem von Apple aufgebaut ist. Darwin ist der Kernel von macOS X und ist im Wesentlichen macOS X ohne die grafische Benutzeroberfläche.

3voto

hoijui Punkte 3273

Diese Lösung funktioniert sowohl für python y jython .

Modul os_identify.py :

import platform
import os

# This module contains functions to determine the basic type of
# OS we are running on.
# Contrary to the functions in the `os` and `platform` modules,
# these allow to identify the actual basic OS,
# no matter whether running on the `python` or `jython` interpreter.

def is_linux():
    try:
        platform.linux_distribution()
        return True
    except:
        return False

def is_windows():
    try:
        platform.win32_ver()
        return True
    except:
        return False

def is_mac():
    try:
        platform.mac_ver()
        return True
    except:
        return False

def name():
    if is_linux():
        return "Linux"
    elif is_windows():
        return "Windows"
    elif is_mac():
        return "Mac"
    else:
        return "<unknown>" 

So verwenden:

import os_identify

print "My OS: " + os_identify.name()

2voto

Memin Punkte 3050

Wie wäre es mit einer einfachen Enum-Implementierung wie der folgenden? Keine Notwendigkeit für externe Bibliotheken!

import platform
from enum import Enum
class OS(Enum):
    def checkPlatform(osName):
        return osName.lower()== platform.system().lower()

    MAC = checkPlatform("darwin")
    LINUX = checkPlatform("linux")
    WINDOWS = checkPlatform("windows")  #I haven't test this one

Sie können einfach mit Enum-Wert zugreifen

if OS.LINUX.value:
    print("Cool it is Linux")

P.S Es ist python3

2voto

not2qubit Punkte 11725

Sie können sich den Code in pyOSinfo die Teil des pip-date Paket, um die wichtigsten Betriebssysteminformationen aus Ihrer Python-Distribution zu erhalten.

Einer der häufigsten Gründe, warum Menschen ihr Betriebssystem überprüfen wollen, ist die Kompatibilität von Terminals und die Verfügbarkeit bestimmter Systembefehle. Leider hängt der Erfolg dieser Überprüfung ein wenig von Ihrer Python-Installation und Ihrem Betriebssystem ab. Zum Beispiel, uname ist in den meisten Windows-Python-Paketen nicht verfügbar. Das obige Python-Programm zeigt Ihnen die Ausgabe der am häufigsten verwendeten eingebauten Funktionen, die bereits von os, sys, platform, site .

enter image description here

Der beste Weg, um nur den wesentlichen Code zu erhalten, ist also ein Blick auf dass als ein Beispiel. (Ich hätte es auch einfach hier einfügen können, aber das wäre nicht politisch korrekt gewesen.)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X