Ausführungsort von Python Scripten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
PyByte
User
Beiträge: 25
Registriert: Samstag 16. Oktober 2010, 03:32

Ich habe ein Python Script das im selben Ordner wie das Script selbst einige Dateien zum lesen öffnet.
Wenn ich das Script selber starte mit einem Doppelklick funktioniert alles.

Aber wenn ich es von einem anderen Ordner über ein absoluten Pfad starte aus einem Programm heraus, bricht das Script mit der Fehlermeldung ab das es die zu lesenden Dateien nicht finden kann.
Ob mit os.popen() in Python oder auch über ein C Programm system() kommt der Fehler.
Das Script lässt sich einfach nicht von einem anderen Ort aus starten.

Was mache ich falsch? Ich nahm an das das Script in dem Ordner ausgeführt wird wo es sich auch befindet.
Wie kann ich es machen das es in seinem Ursprungsordner ausgeführt wird?
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Nenn mal den kompletten Pfad für dein Python und für das Skript, welches du ausführen willst. Zudem: Kopiere die Fehlermeldung und den Code, womit du das Skript starten willst.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Du könntest auch ein:

Code: Alles auswählen

os.chdir(os.path.dirname(__file__))
probieren, auserdem vewende lieber das subprocess-Modul, anstelle von os.popen oder os.system
the more they change the more they stay the same
BlackJack

@PyByte: Generell solltest Du Dein Programm so umschreiben, dass es von überall gestartet werden kann. Statt `os.chdir()` würde ich allerdings nicht das Arbeitsverzeichnis wechseln, sondern den Wert von `__file__` dazu benutzen aus den verwendeten relativen Pfadangaben absolute zu machen.
PyByte
User
Beiträge: 25
Registriert: Samstag 16. Oktober 2010, 03:32

Danke, das hat mir geholfen.
Antworten