在过去几天里,我阅读了许多关于相对Python导入的文档,但是在以下文件夹结构中遇到了困难:
parent_folder
├── subfolder1
│ └── __init__.py
│ └── file_1.py
├── subfolder2
│ └── __init__.py
│ └── file_2.py
│
└ __init__.py (parent folder has an init in it)
在
file_2.py
中,我想访问file_1.py
中的函数。我尝试将以下内容添加到file_2.py
中,但似乎都不起作用:1. from ..subfolder1 import file_1 #ImportError: attempted relative import with no known parent package
2. import parent_folder.subfolder1.file_1 #ModuleNotFoundError: No module named 'parent_folder'
3. from parent_folder.subfolder1 import file_1 #ModuleNotFoundError: No module named 'parent_folder'
我现在非常迷茫,似乎无法理解为什么会发生这种情况。我已经阅读了10个关于相对导入的不同指南,但仍然无法弄清楚原因。
请注意,如果我将file_2.py
放在parent_folder
中,然后添加import subfolder1.file1
,它可以很好地导入,但我不能移动file_2.py
或使用sys.path.append()
有比我更有模块经验的人能提供任何见解吗?谢谢!