python模块导入混乱

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

我有这个文件结构

project
├── src
    ├── main
        ├── __init__.py
        ├── app.py
        ├── constants.py
    └── test
        ├── __init__.py
        └── test_commands.py

里面

app.py
,我导入
constants.py
使用
import constants
。如果我运行
python3 app.py
,这会很好用 在
test_commands.py
里面我有
from main import app
,这将正确导入它,但是它会出错:

File .../src/main/app.py", line 4, in <module>
import constants
ModuleNotFoundError: No module named 'constants'

但是,如果我将该行切换为

from main import constants
,那么它将起作用。然而,现在
python3 app.py
不再有效:

File .../src/main/app.py", line 4, in <module>
from main import constants
ModuleNotFoundError: No module named 'main'

我该如何解决这个问题,以便两种情况都有效?这可能吗?在这种情况下导入模块的正确方法是什么?

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

尝试从模块内进行相对导入时,尝试使用

import .constants

代替

import constants

注意

.
,它表示您正在从模块内的本地文件导入,特别是从同一目录导入。

这也适用于

from
进口。例如,

from . import constants

查看这些资源以获取更多信息:

© www.soinside.com 2019 - 2024. All rights reserved.