Скажем, у меня есть проект python, который структурирован следующим образом:
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)
Когда я запускаю main.py, я получаю следующую ошибку:
 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'
Однако, если я запускаю module.py из каталога package, я не получаю ошибок. Таким образом, кажется, что относительный путь, используемый в open(...), относится только к тому, где выполняется исходный файл (i.e __name__ == "__main__")? Я не хочу использовать абсолютные пути. Каковы некоторые способы борьбы с этим?