带有 dash 应用程序的烧瓶,为什么 WGSI 无法导入模块?

Flask with dash app, why WGSI can't import modules?

我正在尝试将破折号实例添加到 Flask 应用程序,但遇到 WGSI 导入问题。

WGSI 不想在安装 dash 模块时导入它,当我 运行 直接文件 Flask_app.py.

时效果很好

/var/www/pythonanywhere_com_wsgi.py

import sys

# add your project directory to the sys.path
project_home = '/home/mysite'
if project_home not in sys.path:
    sys.path = [project_home] + sys.path

# import flask app but need to call it "application" for WSGI to work
from flask_app import app as application  # noqa

/home/mysite/flask_app.py

from flask import Flask, render_template
import dash

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello from Flask!

# Set-up endpoint 1
app_1 = dash.Dash(name='app1', server=app, url_base_pathname='/app1/')
app_1.layout = html.H1('App 1')

错误:

Error running WSGI application
2021-12-14 16:16:26,591: ModuleNotFoundError: No module named 'dash'
2021-12-14 16:16:26,591:   File "/var/www/pythonanywhere_com_wsgi.py", line 16, in <module>
2021-12-14 16:16:26,591:     from flask_app import app as application  # noqa
2021-12-14 16:16:26,591: 
2021-12-14 16:16:26,592:   File "/home/mysite/flask_app.py", line 5, in <module>
2021-12-14 16:16:26,592:     import dash
2021-12-14 16:16:26,592: ***************************************************
2021-12-14 16:16:26,592: If you're seeing an import error and don't know why,
2021-12-14 16:16:26,592: we have a dedicated help page to help you debug: 
2021-12-14 16:16:26,592: https://help.pythonanywhere.com/pages/DebuggingImportError/
2021-12-14 16:16:26,592: ***************************************************

编辑:事实上,WGSI 似乎不会导入任何模块,尝试使用 pandas:

2021-12-14 16:47:51,730: Error running WSGI application
2021-12-14 16:47:51,734: ModuleNotFoundError: No module named 'pandas'
2021-12-14 16:47:51,734:   File "/var/www/pythonanywhere_com_wsgi.py", line 17, in <module>
2021-12-14 16:47:51,734:     from flask_app import app as application  # noqa
2021-12-14 16:47:51,734: 
2021-12-14 16:47:51,735:   File "/home/mysite/flask_app.py", line 5, in <module>
2021-12-14 16:47:51,735:     import pandas
2021-12-14 16:47:51,735: ***************************************************
2021-12-14 16:47:51,735: If you're seeing an import error and don't know why,
2021-12-14 16:47:51,735: we have a dedicated help page to help you debug: 
2021-12-14 16:47:51,735: https://help.pythonanywhere.com/pages/DebuggingImportError/
2021-12-14 16:47:51,735: ***************************************************

我认为发生的情况是,当 运行 安装了 dashpandas 的应用程序时,您没有激活环境。

您可能在 /home/mysite 内的环境中安装了 dashpandas,但这并不意味着您在 /var/www 内执行 flask run它会自动从您的其他环境导入这些依赖项。

我能够通过在文件夹 pythonanywhere_com_wsgi.py 所在的环境中安装 dashpandas 来获取您的代码 运行。

我是在错误的环境中,正确安装所有依赖项后就可以了!谢谢