Forums Neueste Beiträge
 

Funktioniert folgender Code garantiert?

22/04/2008 - 00:16 von Markus Brueckner | Report spam
Hi,

ich möchte in einem Programm das Verzeichnis, in das Startskript liegt zu
sys.path hinzufügen. Im Moment mache ich folgendes:

sys.path.append(os.path.dirname(sys.argv[0]))

(Das Skript führt spàter andere Skripte mittels exec aus, die beim import so
agieren können, als würden sie im gleicher Verzeichnis liegen, was sie
nicht tun)
Lege ich das entsprechende Skript in den PATH unter Linux und führe es aus,
so funktioniert obiger Code. sys.argv[0] enthàlt also den kompletten Pfad
zur ausführbaren Datei. Ist das immer garantiert oder hàngt das vom System
ab?

Bis dann
Markus

als das grundstudium dran war, warsch grad kreideholn
pro in fem.binaries
 

Lesen sie die antworten

#1 Stefan Behnel
22/04/2008 - 08:26 | Warnen spam
Markus Brueckner wrote:
ich möchte in einem Programm das Verzeichnis, in das Startskript liegt zu
sys.path hinzufügen. Im Moment mache ich folgendes:

sys.path.append(os.path.dirname(sys.argv[0]))



Das kann schief gehen, wenn du es mit einem relativen Pfad startest und dann
im Laufe des Programms das aktuelle Verzeichnis ànderst. Sicherer ist

sys.path.append(os.path.join(os.getcwd(), os.path.dirname(sys.argv[0])))

bzw.

sys.path.insert(0, ...)

Stefan

Ähnliche fragen