Python为Flas导入同一目录中的模块

2024-09-29 21:52:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个烧瓶应用程序。我想在我的应用程序中包含一个单独的模块,将逻辑分成不同的单元。单独的模块名为“validator”,我当前的目录结构如下所示:

src/
    validation-api/
        __init__.py
        api.py
    validator/
        __init__.py
        validator.py
    validation-form/
        ...
    updater/
        ...

我的Flask应用程序在api.py中,我试图做from validator import ValidationOptions, ValidationResult, ValidationRun,其中ValidationOptionsValidationResult,和{}是{}中的类。在

我得到了错误

ImportError: No module named validator

如果我尝试from .validator...from ..validator我就会得到错误

ValueError: Attempted relative import in non-package

我不太明白模块和包在Python中是如何工作的。有什么建议吗?在


内容api.py文件公司名称:

^{pr2}$

我使用以下三个命令启动烧瓶:

set FLASK_APP=api
set FLASK_DEBUG=1
python -m flask run

Tags: 模块frompyimportapi应用程序flask烧瓶
2条回答

多亏了@Daniel Roseman,我才弄清楚发生了什么。我将FLASK_APP环境变量改为validation-api.api,并从src运行python -m flask run命令。所有进口产品现在都在工作!在

如果你有一个简单的应用程序

src/
    app.py
    something.py
    templates/

并且app.py中有import something语句,然后确保源目录中没有__init__.py。在

请参见the doc了解有关原因的解释。在

相关问题 更多 >

    热门问题