我正在尝试创建一个 Flask 应用程序。我想在我的应用程序中包含一个单独的模块,以将逻辑分成不同的单元。单独的模块称为“验证器”,我当前的目录结构如下所示:
src/
validation-api/
__init__.py
api.py
validator/
__init__.py
validator.py
validation-form/
...
updater/
...
Run Code Online (Sandbox Code Playgroud)
我的 Flask 应用程序位于 中api.py,我正在尝试执行from validator import ValidationOptions, ValidationResult, ValidationRunwhere ValidationOptions、ValidationResult、 和ValidationRunare 中的类validator。
我收到错误
导入错误:没有名为验证器的模块
如果我尝试from .validator...或from ..validator收到错误
ValueError:尝试在非包中进行相对导入
我不太明白Python 中的模块和包是如何工作的。有什么建议么?
api.py的内容:
from flask import Flask, request
from validator.validator import ValidationOptions, ValidationResult, ValidationRun
app = Flask(__name__)
@app.route("/validate", methods=["POST"])
def validate(self):
pass
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
我使用以下三个命令启动 Flask:
set FLASK_APP=api
set FLASK_DEBUG=1
python -m flask run
Run Code Online (Sandbox Code Playgroud)
感谢@Daniel-Roseman,我已经弄清楚发生了什么事。我将FLASK_APP环境变量更改为validation-api.api,并python -m flask run从 运行命令src。所有导入现在都可以正常工作!
| 归档时间: |
|
| 查看次数: |
4555 次 |
| 最近记录: |