2016-09-08 3 views
1

Ich habe ein Python-Paket, das wie folgt organisiert:Pfad zu Datei innerhalb eines Pakets abrufen?

package 
|- subpackage 
| |- code.py 
| |- window.ui 
| ... 

In code.py ich die Datei window.ui über

PyQt4.uic.loadUi('window.ui', self) 

Das funktioniert gut zugreifen wollen, wenn ich mit subpackage als die gerade code.py laufen Arbeitsverzeichnis Aber wenn ich das Paket von einem anderen Arbeitsverzeichnis zu importieren, kann diese Datei nicht gefunden werden:

IOError: [Errno 2] No such file or directory: 'window.ui' 

Meine Frage: Wie kann ich den Pfadnamen des Verzeichnisses erhalte die Datei code.py platziert in, zu schaffen, um der absolute Pfadname window.ui. Oder wie kann ich am effizientesten auf die Datei window.ui zugreifen.

Ich versuchte os.path.abspath('.') von here, aber es gibt nur den absoluten Pfad des aktuellen Arbeitsverzeichnisses zurück.

Antwort

3

Verwenden Sie den absoluten Pfad der Datei anstelle des relativen Pfads.

abspath = os.path.join(os.path.dirname(os.path.realpath(__file__)), "window.ui") 

PyQt4.uic.loadUi(abspath, self) 
Verwandte Themen