Bedingter Import von Modulen in Python

In meinem Programm möchte ich einfachjson oder json importieren, je nachdem, ob das Betriebssystem der Benutzer ist, ist Windows oder Linux. Ich nehme den OS-Namen als Eingabe vom Benutzer. Nun ist es richtig, das folgende zu tun

osys = raw_input("Press w for windows,l for linux") if (osys == "w"): import json as simplejson else: import simplejson 

3 Solutions collect form web for “Bedingter Import von Modulen in Python”

Ich habe gesehen, dass dieses Idiom viel benutzt hat, also musst du nicht einmal OS Schnüffeln machen:

 try: import json except ImportError: import simplejson as json 

Perfekt richtig, Tonnen von Paketen machen das. Es ist wahrscheinlich besser, herauszufinden, das Betriebssystem selbst anstatt sich auf den Benutzer; Hier ist pySerial als Beispiel.

serial/__init__.py

 import sys if sys.platform == 'cli': from serialcli import * else: import os # chose an implementation, depending on os if os.name == 'nt': #sys.platform == 'win32': from serialwin32 import * elif os.name == 'posix': from serialposix import * elif os.name == 'java': from serialjava import * else: raise Exception("Sorry: no implementation for your platform ('%s') available" % os.name) 

Es ist nicht ratsam, json oder simplejson mit OS-Plattform zu binden. Simplejson ist neuere und fortgeschrittene Version von json so sollten wir versuchen, es zuerst zu importieren.

Basierend auf Python-Version können Sie versuchen, unten Weg zu importieren json oder simplejson

 import sys if sys.version_info > (2, 7): import simplejson as json else: import json 
Python ist die beste Programmiersprache der Welt.