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

问题描述 投票:0回答:1

我不知道这些进口。我已经在文件结构的最深层次上完成了除1之外的所有工作。

文件结构是:

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

我被困的地方:

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

没有名为'file3'的模块

我已经尝试在每个目录中包含__init__.py文件,完全删除这些文件,仅将这些文件放在特定目录中,依此类推。我在Google搜索中找到了所有解决方案,但无法解决。

这里是VS Code的屏幕截图,可能会更好地显示出来。。

enter image description here

python python-3.x python-import
1个回答
1
投票

Python导入始终相对于运行Python解释器的目录,在您的情况下,该目录是~/projects/companynurse/busterEtl的源根目录,因此,为了使etlProcess.py导入recordTable.py,它应使用绝对导入并与完整的包路径:

from application.facilities import recordTable

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

from . import recordTable
© www.soinside.com 2019 - 2024. All rights reserved.