2016-05-13 9 views
0

Ich benutze Vizard, um eine .exe-Datei aus einem Python-Skript zu erstellen. Ich brauche dieses Skript um einen Ordner zu erstellen, diePython create Ordner neben .exe

auf die EXE-Datei neben residiert

funktioniert gut, wenn ich von dem IDE ausführen, aber in einem EXE-Datei es Daten wirft in dem Ordner AppData in Windows/Users/Temp/randomfoldername.

Auch ich immer Anwendung ist Skript, auch wenn es in exe gepackt ist.

Kann mir hier jemand in die richtige Richtung zeigen? Vielen Dank im Voraus

+0

Welche Ausgabe erhalten Sie, wenn Sie dies ausführen? –

+0

Sowohl bei der Ausführung von der IDE und als ausführbare, was ist die Ausgabe? –

+0

Wenn ich von IDE ausführen: ACHTUNG: root: Die Anwendung ist Skript ACHTUNG: root: G: \ WakefulRest ACHTUNG: root: G: \ WakefulRest Ich weiß, es warnend sagt, weil ich loglevel Warnung verwenden, G die usb ist Fahrt. Von der exe: Die gleiche Ausgabe, aber mit einem Pfad zu meinem Benutzerordner in Windows – coernel

Antwort

1

Das sys-Modul hat kein Attribut frozen, was dazu führt, dass die erste if-Anweisung immer False zurückgibt.

sys.executable wird den Pfad zum Python-Interpreter binäre geben, dh. für Windows den Pfad deiner python.exe Datei, die ich nicht sehen kann, warum du dafür brauchst.

Wenn Sie möchten, dass die laufende Datei eine .exe Datei ist, dann machen Sie einen Ordner daneben, es könnte einfacher sein, nur zu überprüfen, ob der Dateiname mit .exe endet?

if __file__.endswith('.exe'): 
    loggingFolder = os.path.join(os.path.dirname(__file__), 'foldername') 
    if not os.path.exists(loggingFolder): 
     os.makedirs(loggingFolder) 
0

, wenn Sie nur einen Ordner zur Laufzeit erstellt werden sollen, dann eine andere (möglicherweise einfacher) Methode ist Ihr vizard Programm aus einer Batch-Datei und erstellen Sie den Ordner zunächst in der Batch-Datei

zum Beispiel läuft create run_viz_prog.bat mit Inhalt wie folgt: -

mkdir new_folder 
my_viz_prog.exe