如何跨文件结构导入 类 和文件; __init__.py 混乱

How to Import Classes and Files across file structure; __init__.py confusion

我搞不懂这些导入。在文件结构的最深层,除了 1 个之外,我都在工作。

文件结构为:

| rootDir
|--- file1.py (main.py)
|--- appDir
|------ schema1Dir
|--------- file2.py (etlProcess.py)
|--------- file3.py (recordTable.py)
|------ schema2Dir
|--------- ... 
|------ ...

我被困在哪里:

file2.py 正试图从同一目录导入 file3.py 以触发该文件中的 class。我收到一个错误。

No module named 'file3'

我试过在每个目录中包含 __init__.py 文件,完全删除这些文件,只将这些文件放在特定目录中,等等。我在 Google 搜索中找到的所有解决方案,但我无法让它工作。

这是 VS Code 的屏幕截图,可以更好地形象化这一点..

Python 导入总是相对于 Python 解释器所在的目录 运行,在你的例子中是 ~/projects/companynurse/busterEtl 的源根目录,所以为了对于 etlProcess.py 导入 recordTable.py,它应该使用带有完整包路径的绝对导入:

from application.facilities import recordTable

或使用 relative import. 以在同一目录中明确定位 recordTable.py

from . import recordTable