簡體   English   中英

無法從終端運行 Flask,“沒有名為‘my_app’的模塊”

[英]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()

你需要做什么?

  1. 刪除run.py
  2. FLASK_APP設置為您創建my_app.source app實例(可能是my_app.source )的模塊名稱/導入路徑。
  3. 然后就做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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM