像這樣啟動 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
主.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 不讓它找到更高級別的目錄模塊?
uj5u.com熱心網友回復:
由于Python 的模塊搜索路徑,找不到app該模塊。它嘗試從's 目錄匯入。main.py
如果您不想更改任何內容,請cd進入src/目錄,然后從那里使用“模塊方法”運行應用程式:
$ python -m app.main
第二種方法:將from app.web import app_configline更改為from web import app_config,然后原來的python src/app/main.py將起作用,因為現在它從 匯入相對main.py。
第三個選項:將src目錄的完整路徑添加到PYTHONPATHenv var。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/419771.html
標籤:
下一篇:如何使用燒瓶服務靜態站點
