Python 导入模块时遇到问题

发布于 2024-08-21 18:00:25 字数 765 浏览 0 评论 0原文

我正在构建一个具有以下目录结构的 Web 应用程序:

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 *

,但没有一个有效。如果有人有任何想法,我真的很感激听到他们的声音。

另外,如果这是一个重复的问题,我很抱歉,但我不确定要搜索什么。

I am building a web app with this directory structure:

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

Every __init__.py file has

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

in it, listing the .py files that are in the same directory as it. So, app/__init__.py is empty, app/config/__init__.py has

__all__ = ['db_config']

, etc. in app/models/datasources/database.py, I cannot seem to import anything from app/config/db_config.py. I have tried

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

but none of them has worked. If anyone has any ideas I'd really appreciate hearing them.

Also, I apologize if this is a duplicate question, but I wasn't sure exactly what to search for.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妄司 2024-08-28 18:00:25

import app.config.db_config 是最好的方法(避免非绝对导入,并且永远不要使用 import *),为此,app 目录应该位于 <代码>sys.path。如果不是,请将目录添加到您的 PYTHONPATH 或将项目移动到这种情况的某个位置。

import app.config.db_config is the best way (avoid non-absolute imports and never ever use import *), and for this to work the app directory should be in sys.path. If it is not, add the directory to you PYTHONPATH or move the project to somewhere this is the case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文