Angenommen, ich habe ein Python-Projekt, das wie folgt aufgebaut ist:
project
/data
test.csv
/package
__init__.py
module.py
main.py
__init__.py
::
from .module import test
module.py
::
import csv
with open("..data/test.csv") as f:
test = [line for line in csv.reader(f)]
main.py
::
import package
print(package.test)
Beim Ausführen wird main.py
folgende Fehlermeldung angezeigt:
C:\Users\Patrick\Desktop\project>python main.py
Traceback (most recent call last):
File "main.py", line 1, in <module>
import package
File "C:\Users\Patrick\Desktop\project\package\__init__.py", line 1, in <module>
from .module import test
File "C:\Users\Patrick\Desktop\project\package\module.py", line 3, in <module>
with open("../data/test.csv") as f:
FileNotFoundError: [Errno 2] No such file or directory: '../data/test.csv'
Wenn ich jedoch module.py
aus dem package
Verzeichnis laufe, erhalte ich keine Fehler. Es scheint also, dass der relative Pfad, in dem verwendet open(...)
wird, nur relativ zu dem ist, von dem aus die Ursprungsdatei ausgeführt wird (dh __name__ == "__main__"
)? Ich möchte keine absoluten Pfade verwenden. Wie kann man damit umgehen?
from package.module import test
.