Python 导入模块时遇到问题

1 投票
1 回答
950 浏览
提问于 2025-04-15 19:24

我正在构建一个网页应用,目录结构如下:

app/
    __init__.py
    config/
        __init__.py
        db_config.py
    models/
        __init__.py
        model.py
        datasources/
            __init__.py
            database.py
    ...
    ...

每个 __init__.py 文件里面都有

__all__ = ['', '', ...]

,列出了和它在同一个目录下的 .py 文件。所以,app/__init__.py 是空的,app/config/__init__.py 里面有

__all__ = ['db_config']

,等等。在 app/models/datasources/database.py 里,我似乎无法从 app/config/db_config.py 导入任何东西。我试过

import app.config.db_config
import config.db_config
from app.config.db_config import *

但都没有成功。如果有人有任何想法,我会非常感激能听到。

另外,如果这个问题重复了,我也很抱歉,但我不太确定该搜索什么。

1 个回答

2

使用import app.config.db_config是最好的方法(要避免使用非绝对导入,也不要使用import *),为了让这个方法有效,app目录需要在sys.path中。如果没有在里面,可以把这个目录添加到你的PYTHONPATH中,或者把项目移动到一个可以满足这个条件的地方。

撰写回答