假设我有一个Python项目,结构如下:
当我运行
然而,如果我从“package”目录中运行“module.py”,就不会出现任何错误。所以看起来,在
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'
然而,如果我从“package”目录中运行“module.py”,就不会出现任何错误。所以看起来,在
open(...)
中使用的相对路径只相对于正在运行的文件的位置(即__name__ == "__main__"
)?如何只使用相对路径来处理这个问题?
from package.module import test
。 - spectras