So erhalten Sie den Pfad des ausgeführten eingefrorenen Skripts

8

Wenn Sie ein eingefrorenes Python-Skript (eingefroren mit py2exe) von einem anderen Verzeichnis und Laufwerk als das Skript ausführen, was ist der beste Weg, den Pfad des ausführenden Skripts zu bestimmen?

Wenige Lösungen, die ich versucht habe

%Vor%

Problem: Gibt nicht den vollständigen Pfad zurück. Es gibt nur den Skriptnamen zurück.

%Vor%

Problem: Funktioniert nicht unter Windows

%Vor%

Problem: Gibt eine leere Zeichenfolge zurück.

%Vor%

Funktioniert nicht, wenn das Laufwerk nicht mit pwd übereinstimmt

%Vor%

Funktioniert nicht, wenn das Laufwerk nicht mit pwd übereinstimmt

Hier ist ein minimales nicht funktionierendes Beispiel

%Vor%

Verwandte Fragen:

Hinweis

@ Fenikso's Lösung funktioniert, wenn sich das Skript auf demselben Laufwerk befindet, auf dem Sie gerade arbeiten, aber wenn es auf einem anderen Laufwerk läuft, funktioniert es nicht

    
Abhijit 24.04.2012, 07:46
quelle

3 Antworten

10

Ein anderer Ansatz, der mit cxFreeze funktioniert, wenn er von einem anderen Laufwerk läuft, selbst wenn PATH verwendet wird:

%Vor%

Aus Python:

%Vor%

Von der Befehlszeile:

%Vor%

Verwenden von PATH:

%Vor%     
Fenikso 24.04.2012, 08:36
quelle
2

IMHO, Code, der sich abhängig von absoluten Pfaden anders verhält, ist keine gute Lösung. Es wird wahrscheinlich eine relative Pfadlösung sein. Verwenden Sie dirname, um das relative Verzeichnis und os.sep für plattformübergreifende Kompatibilität zu kennen.

%Vor%

Das eingefrorene Attribut ist der Python-Standard.

Sieh dir auch Esky an: Ссылка

    
J_Zar 24.04.2012 10:40
quelle
0

Versuchen Sie Folgendes:

%Vor%

Das ist, was ich mit cx_Freeze verwende, um das Verzeichnis von wo die .exe wirklich läuft.

    
Fenikso 24.04.2012 07:57
quelle

Tags und Links