尝试使用 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 &gt; 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 上部署烧瓶站点/应用程序

如何在 PythonAnywhere 上部署 web2py?

在PythonAnyWhere上部署Django项目

PythonAnywhere:尝试使用 easygui 模块时出现 Tkinter.py 错误