[英]Unable to run Flask from Terminal, “No module named 'my_app’”
我期待得到以下內容,但我只是在這一點上卡住了。
* Serving Flask app "app"
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在終端中,我嘗試運行FLASK_APP=run.py flask run
,然后得到
ModuleNotFoundError: 沒有名為“my_app”的模塊
當我嘗試將命令中的名稱更改為FLASK_APP=__init__.py flask run
,我得到
錯誤:無法在模塊“myProject”中找到應用程序。 你確定它包含一個 Flask 應用程序嗎? 也許您將它包裝在 WSGI 中間件中,或者您正在使用工廠函數。
這是我的項目結構:
myProject/
|—my_app/
|— source/
|— __init__.py
|— other .py files
|— static/
|— templates/
|— __init__.py
|— someFile.sqlite
|— run.py
myProject/run.py
包含兩行代碼:
from my_app import app
app.run()
myProject/__init__.py
什么myProject/__init__.py
包含,空白。
myProject/source/__init__.py
也是空白的(但我猜這些文件只需要在這里?)
我在 PyCharm 下運行文件時遇到問題,但是當我在 Spyder Anaconda 中運行文件 run.py 時,我收到了說明服務器正在運行的預期消息。 為什么它適用於 Spyder,而不適用於 PyCharm?
在進入主題之前,你應該在my_app
文件夾下創建一個__init__.py
,它將它變成一個python包,這樣它就可以導入了。
當你執行flask run
,flask 會在你用FLASK_APP
指定的模塊中尋找app
實例,所以在這種情況下不需要app.run()
。
你需要做什么?
run.py
。FLASK_APP
設置為您創建my_app.source
app
實例(可能是my_app.source
)的模塊名稱/導入路徑。flask run
。找到問題的解決方案:PyCharm → 首選項 → 項目解釋器 →(沒有安裝燒瓶)所以我點擊+
按鈕添加包,搜索燒瓶並安裝它。 關閉首選項后,我回來運行 run.py 並且它起作用了!
我知道我正在使用的解釋器中缺少該包的原因是因為當我運行 run.py 時,我會得到
…/.conda/envs/python3.6/bin/python: No module named flask.
我注意到在終端中運行pip show flask
,它給了我安裝位置:
Location: /Users/me/anaconda3/lib/python3.6/site-packages.
在查看兩個路徑位置后,我確定解釋器沒有找到正確的位置,因此當我更改路徑時,它開始工作。
此外,我不必在終端中使用任何命令來啟動服務器。 我只運行了 run.py 文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.