Meine Anwendung läuft bisher über VS Code, soll aber jetzt eigenständig und unabhängig von einem USB-STick laufen.
Das ist vermutlich die Ursache für mein Problem:
Ich starte von E:
e:\python.exe e:\<Anwendung>
Das fun ktioniert zwar, aber beim Lesen einer Konfigurationsdatei klemmt es.
Der Name der Datei ist hardwired - wahrscheinlich keine gar so tolle Idee cf.read('ANwendung.ini')
Interessanterweise gibt es keinen filenotfoundError oder so etwas, sondern erst später einen KeyError, weil wohl bei fehlender config-Datei die Keys-AUflistung einfach leer ist. Wusste ich bisher nicht.
Versuchsweise habe ich die read-Anweisung auf "e:\<Anwendung.ini>" geändert - und damit geht es.
Wie löse ich das eleganter? Die ini-Datei soll im gleichen Verzeichnis/Pfad gesucht werden wie die Python-Datei.
configparser / ini-Datei nicht gefunden / (relativer) pfad in python
- __blackjack__
- User
- Beiträge: 13997
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@drnicolas: Module haben den Namen `__file__` definiert, als Pfad dieser Datei. Davon den Verzeichnisteil nehmen (`Path.parent`) und man hat das Verzeichnis in dem das Modul liegt.
`Configparser.read()` löst absichtlich keine Ausnahme aus, weil man dort auch mehrere Dateinamen übergeben kann, zum Beispiel um zu ermöglichen das in verschiedenen Verzeichnissen optionale Konfigurationsdateien liegen. Die Methode hat einen Rückgabewert. Die Dokumentation weiss mehr.
`Configparser.read()` löst absichtlich keine Ausnahme aus, weil man dort auch mehrere Dateinamen übergeben kann, zum Beispiel um zu ermöglichen das in verschiedenen Verzeichnissen optionale Konfigurationsdateien liegen. Die Methode hat einen Rückgabewert. Die Dokumentation weiss mehr.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis