如何跨文件结构导入 类 和文件; __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
我搞不懂这些导入。在文件结构的最深层,除了 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