![](/img/trans.png)
[英]Getting 404 not found on Flask app deployed on PythonAnywhere
[英]Flask app fails to run when deployed to pythonanywhere
我正在使用一個網絡應用程序來調用電影數據庫。 在本地主機上運行時,一切運行正常。 我正在嘗試在pythonanywhere上部署它。 我創建了一個虛擬環境並安裝了所有依賴項。 我相信我已經正確編輯了WSGI文件。
import sys
path = '/home/gcmatt/capstone/src'
if path not in sys.path
sys.path.append(path)
from app import app as application
至少從我得到的錯誤消息中,它似乎已找到文件。 當我嘗試加載頁面時,它無法運行。 似乎由於某種原因,該代碼無法導入我自己的函數src.models.search。
2018-03-31 15:28:50,341: Error running WSGI application
2018-03-31 15:28:50,349: ModuleNotFoundError: No module named 'src'
2018-03-31 15:28:50,349: File
"/var/www/gcmatt_pythonanywhere_com_wsgi.py", line 82, in <module>
2018-03-31 15:28:50,349: from app import app as application # noqa
2018-03-31 15:28:50,349:
2018-03-31 15:28:50,349: File "/home/gcmatt/capstone/src/app.py",
line 4, in <module>
2018-03-31 15:28:50,350: from src.models.search import Search
我是否需要在python代碼中更改文件結構或文件路徑才能運行該應用程序? 我在任何地方都遵循了有關python的教程,並認為我已經正確設置了所有內容。
這是我的目錄結構
capstone/
|--.git/
|--src/
|models/
|--__init__.py
|--results.py
|--search.py
|--templates
|--base.html
|--home.html
|--noresults.html
|--search.html
|--__init__.py
|--api_file.txt
|--app.py
|--requirements.txt
由於您設置path = '/home/gcmatt/capstone/src'
,因此src
模塊在path
上不可用。 只有models
, templates
等。
Python只會在可以看到其中帶有__init__.py
的子目錄的情況下識別包。 無論當前目錄是否具有__init__.py
,它都不會將當前目錄識別為包。
嘗試設置path = '/home/gcmatt/capstone'
,它應該能夠檢測到軟件包src
。
在這里編輯:您可能還想說from src.app import app as application
在這里進行第二次編輯:在app.py
您還應該將導入更改為導入子包,而不是src.[something]
。 例如: from models.search import Search
。 您的WSGI將看到src
包,並src.app
導入src.app
。 然后src.app
導入相對於自身的包(即import models
)。
來源:我的許多應用程序都使用PythonAnywhere :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.