尝试使用 PythonAnyWhere 部署 Web Flask 应用程序时出现 WSGI 错误
Posted
技术标签:
【中文标题】尝试使用 PythonAnyWhere 部署 Web Flask 应用程序时出现 WSGI 错误【英文标题】:WSGI Error when Trying to Deploy Web Flask App with PythonAnyWhere 【发布时间】:2020-12-04 04:56:30 【问题描述】:我想使用 pythonanywhere 公开部署我的烧瓶应用程序。我是新手(我是初学者)。我完全按照所有步骤操作。但是我的网络烧瓶应用程序出现了一些错误。在我的网站上,我使用 python3.7、html、CSS 和 javascript。 这是错误日志上的错误消息:
2020-08-14 08:37:07,432: Error running WSGI application
2020-08-14 08:37:07,435: ModuleNotFoundError: No module named 'pandas'
2020-08-14 08:37:07,436: File "/var/www/analisisbipolardisorder_pythonanywhere_com_wsgi.py", line 18, in <module>
2020-08-14 08:37:07,436: from my_flask_app import app as application # noqa
2020-08-14 08:37:07,436:
2020-08-14 08:37:07,436: File "/home/analisisbipolardisorder/mysite/my_flask_app.py", line 3, in <module>
2020-08-14 08:37:07,436: from pandas import DataFrame, read_csv
2020-08-14 08:37:07,437:
***************************************************
2020-08-14 08:37:07,437: If you're seeing an import error and don't know why,
2020-08-14 08:37:07,438: we have a dedicated help page to help you debug:
2020-08-14 08:37:07,438: https://help.pythonanywhere.com/pages/DebuggingImportError/
2020-08-14 08:37:07,439:
***************************************************
我真的不知道如何解决这个问题。 在我的名为“my_flask_app.py”的文件中,有一些类似这样的警告:
'flask.url_for' 已导入但未使用(即使我在其他文件中需要 'url_for' 模块) 'pandas' 已导入但未使用(即使我需要库 pandas 来导入 DataFrame 和 read_csv 模块) 'pandas.DataFrame' 已导入但未使用 'pandas.read_csv' 已导入但未使用在我的 WSGI 文件上,也有这样的警告:
'my_flask_app.app as application' 已导入但未使用(即使我需要它来运行我的 web flask 应用程序)我的 Flask 看起来像这样 (my_flask_app.py):
from flask import Flask, render_template, url_for
import pandas
from pandas import DataFrame, read_csv
import csv
app = Flask(__name__)
@app.route('/')
def index():
with open (r"/home/analisisbipolardisorder/css/bipolarlabelled.csv", encoding="utf8") as file:
reader = csv.reader(file)
dataset = [row for row in reader]
with open (r"/home/analisisbipolardisorder/css/df_train90.csv", encoding="utf8") as train_file:
reader = csv.reader(train_file)
train = [row for row in reader]
with open (r"/home/analisisbipolardisorder/css/test_prediction_9010.csv", encoding="utf8") as test_file:
reader = csv.reader(test_file)
test = [row for row in reader]
return render_template('home.html', data = dataset, train = train, test = test)
if __name__ == "__main__":
app.run(debug=True)
我的 WSGI 文件如下所示:
# This file contains the WSGI configuration required to serve up your
# web application at http://<your-username>.pythonanywhere.com/
# It works by setting the variable 'application' to a WSGI handler of some
# description.
#
# The below has been auto-generated for your Flask project
import sys
# add your project directory to the sys.path
project_home = '/home/analisisbipolardisorder/mysite'
if project_home not in sys.path:
sys.path.insert(0, project_home)
# import flask app but need to call it "application" for WSGI to work
from my_flask_app import app as application # noqa
我真的需要你的帮助。之前谢谢。
【问题讨论】:
看起来您没有安装pandas
。安装它们,它会工作。参考 -> https://help.pythonanywhere.com/pages/InstallingNewModules/
【参考方案1】:
-
创建环境文件夹。很简单。第一:
pip install virtualenv
。第二次创建你的环境:python -m venv myenv
。如果您使用的是 Windows 机器,那么
myenv\Scripts\activate.bat
, source myenv/bin/activate
是为了
Unix/MacOS。然后在此处安装所有库。然后就这样做
pip freeze > requirements.txt
。如果你想禁用环境
停用。
初始化 Git
很难编写所有内容,因此请观看youtube video(“使用 Python Anywhere 部署 Flask 应用程序”)
【讨论】:
【参考方案2】:正如 jen 在 cmets 中指出的那样,您缺少 pandas 我建议您在项目目录中安装一个虚拟环境,然后在该环境中安装 pandas ([这里有一个 pythonanywhere 帮助帖子])1
如果这看起来太令人生畏,只需打开一个 bash 控制台并在此代码中输入 python3.x -m pip install pandas
x,您需要将其替换为您为项目选择的 python3 版本(python3.8 或类似版本)
如果您需要更多信息,请告诉我
【讨论】:
以上是关于尝试使用 PythonAnyWhere 部署 Web Flask 应用程序时出现 WSGI 错误的主要内容,如果未能解决你的问题,请参考以下文章
PythonAnywhere 上的 JSONDecodeError
Django--在Pythonanywhere部署Django。
在 pythonanywhere.com 上部署烧瓶站点/应用程序