【发布时间】:2022-01-22 16:13:08
【问题描述】:
像这样启动 Flask 时出现模块未找到错误:
$ python src/app/main.py
$ python src/app/main.py
Traceback (most recent call last):
File "/home/james/code/webapp/src/app/main.py", line 3, in <module>
from app.web import app_config
ModuleNotFoundError: No module named 'app'
目录:
src
|- app
|- |- __init__.py
|- |- main.py
|- |- web
|- |- |- __init__.py
|- |- |- app_config.py
main.py:
from flask import Flask
from app.web import app_config
app = Flask(__name__)
@app.get("/ping")
def ping():
return "pong"
if __name__ == "__main__":
app.run(debug=True)
但如果我用 gunicorn 启动它就可以了:
$ gunicorn app.main:app
[2022-01-22 15:28:58 +0000] [148] [INFO] Starting gunicorn 20.1.0
[2022-01-22 15:28:58 +0000] [148] [INFO] Listening at: http://127.0.0.1:8000 (148)
[2022-01-22 15:28:58 +0000] [148] [INFO] Using worker: sync
[2022-01-22 15:28:58 +0000] [150] [INFO] Booting worker with pid: 150
为什么直接从终端运行 Flask 不让它找到更高级别的目录模块?
【问题讨论】: