2017-11-21 3 views
0

Ich habe ein Python-Programm, das ein Ini mit Configparser liest. Ich möchte den gleichen Namen wie die Python-Datei haben, deshalb habe ich folgenden Code verwenden:Wie erkennt man, ob ein Programm von cx_freeze kompiliert wird?

# nativ python 
#fileName = sys.argv[0].split('.')[0] 

# compiled python 
fileName = sys.argv[0].split('\\')[-1] 
fileName = fileName.split('.')[0] 

Wie Sie ich haben je nach Modus verschiedene Versionen sehen kann ich es laufen. Wird es als Python-Skript ausgeführt, gibt sys.argv ein anderes Ergebnis als bei Verwendung als exe. Ich wechsle das mit der Hand und manchmal vergesse ich es, muss es ändern und muss das Ganze neu kompilieren. Aber ich sah andere Dinge wie:

if sys.platform == "win64": 
    base = "Win64GUI" 
else: 
    base = "Win32GUI" 

ich mich gefragt, ob ich erkennen könnte, wenn die Quelle von cx_freeze kompiliert wird etwas ähnliches wie dies mit:

if getting_compiled(): 
    fileName = sys.argv[0].split('.')[0] 
else: 
    fileName = sys.argv[0].split('\\')[-1] 
    fileName = fileName.split('.')[0] 

Antwort

1

Ja, können Sie den Wert überprüfen, der "sys.frozen", das von cx_Freeze gesetzt wird.

getattr (sys "eingefroren", False)

sollte es für Sie tun.

+0

einfach und einfach, vielen Dank. – Hakaishin

+0

Schöne Sache ist, dass das funktioniert, nachdem ich auf pyinstaller geschaltet habe. – Hakaishin

Verwandte Themen