我在从 python 项目中的子文件夹导入时遇到问题

I have problem with import from subfolders in python project

你好,我正在处理我的第一个 python 项目,我在从项目

中的子文件夹导入时遇到问题

例如我的项目树

C:\USERS\AHMAD\DESKTOP\myProject
│
├───project
│   │   __init__.py
│   │
│   ├───core
│   │       config.py
│   │       __init__.py
│   │
│   ├───libs
│   │       lib1.py
│   │       __init__.py
│   │
│   └───modules
│       │   __init__.py
│       │
│       ├───module1
│       |       script1.py
│       │       __init__.py
│       │
│       ├───module2
│       │       __init__.py
│       │
│       ├───module3
│       │       __init__.py
│       │
│       └───module4
│               __init__.py

现在在模块 1 中的 script1 我如何从 core 文件夹导入配置文件? ?那可能吗 ?请帮忙!!

尝试相对导入向后导航:

从...核心导入配置

'core'前的每个点代表从script1.py

开始的父模块

所以,第一个是'module1',第二个是'modules',第三个是'project'。

此问题已由以下人员回答:Relative imports for the billionth time

但重申一下,假设 script1.py 是包 project 的子模块,您可以简单地使用绝对或相对导入:

from project.core import config

from ...core import config

但是,这并不意味着您可以 运行 脚本 python script1.py。这将不起作用(并将导致 ModuleNotFoundError)。相对和绝对导入仅在 python 文件被视为模块时有效。当您直接通过 python filename 运行 一个 python 文件时,它被视为顶级(主要)python 脚本并且其 __name__ 属性设置为 "__main__"。你通常不应该执行模块文件,但是如果你必须,在包之上的目录级别,运行:

python -m project.modules.module1.script1