Pfad des Scriptes / Moduls?

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
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Freitag 9. Dezember 2011, 20:54

Ui, ui, ui, bin echt draussen ...

Also z. Zt. arbeite ich an einem Reportgenerator für meine Arbeit (Linux). Das Script liegt in einem Verzeichnis zusammen mit diversen .tex-Templates und soll zusammen mit jinja2 schöne Reporte generieren. Das Script ist verlinkt in einem anderen Verzeichnis, das Teil von PATH ist (genau /home/cm/bin). Da aber das Scriptverzeichnis je nach Rechner an anderen Orten sein kann, muß ich dem Script beibringen in seinem Verzeichnis nach den Templates zu schauen. (Nein, installieren möchte ich nichts, zumindest nicht, während ich entwickle.) Gibt es da eine Möglichkeit?

Gruß,
Christian
Benutzeravatar
/me
User
Beiträge: 3262
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Freitag 9. Dezember 2011, 21:02

Code: Alles auswählen

print os.path.dirname(__file__)
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Freitag 9. Dezember 2011, 21:04

@/me: Das hilft bei symbolischen Links nicht.

@CM: `os.path.realpath` statt `os.path.dirname` hilft.
Benutzeravatar
/me
User
Beiträge: 3262
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Freitag 9. Dezember 2011, 21:08

cofi hat geschrieben:@/me: Das hilft bei symbolischen Links nicht.
Den Teil mit dem symbolic link hatte ich so gar nicht wahrgenommen und aus meinem Codesnippet extra realpath entfernt ...
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Freitag 9. Dezember 2011, 21:27

Vielen Dank - war gerade schon dabei das mit dem Symlink näher zu erläutern, als ich Deine Antwort las, cofi. Funktioniert tadellos - zusammen mit os.path.split bekomme ich, was ich möchte.

Das mit dem Symlink hat man echt gut übersehen können - sorry.
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Freitag 9. Dezember 2011, 21:34

Wenn dir nur an dem Verzeichnis gelegen ist (was ich wiederum uebersehen hab :oops:), solltest du lieber /me folgen und `dirname` nutzen.
BlackJack

Freitag 9. Dezember 2011, 22:54

@CM: Vielleicht könntest Du aus Deinem Python-Code auch ein Package machen und den entsprechenden Loader von `jinja` verwenden!?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Samstag 10. Dezember 2011, 21:29

Na ja, könnte ich schon. Damit verbunden wäre ja ein bekanntes Verzeichnis für Nicht-Python-Dateien. Ist schon eine Überlegung wert. Danke.
Antworten