在 Pythonanywhere 上部署 Apache Superset

Getting Apache Superset deployed on Pythonanywhere

我正在尝试弄清楚如何使用 uWSGI+nginx 部署 Apache Superset as a web app on Pythonanywhere 的实例。


我已经在 Pythonanywhere 上安装启动了一个虚拟环境,并在 instructions on the website 之后安装和设置了 Superset。在 Pythonanywhere 上启动一个 Superset 服务器似乎可行,但是我找不到任何关于如何将 Superset 与 flask 一起使用的文档,这样 Superset 就可以与 uWSGI+nginx 一起使用 xxx.pythonanywhere.com.


wsgi文件很简单:

import sys

project_home = u'/home/tmo/testsite'
if project_home not in sys.path:
    sys.path = [project_home] + sys.path

from flask_app import app as application

据我所知,在 PythonAnywhere 上,WSGI 方面的事物由 /var/www/you_domain_wsgi.py 中每个域的文件管理。它需要定义一个名为 application 的变量,它与 init.py. 中的应用程序相同,但是当 [=39] 时我看不到任何类型的 Flask 应用程序是如何部署的=] superset runserver。在他们的文档中,他们只是简单地声明“请参考您首选技术的文档,以便以适合您的环境的方式设置此 Flask WSGI 应用程序。”。

/superset/bin/ 中有一个名为 flask 的文件,其中包含

import re
import sys
from flask.cli import main
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

但我真的找不到任何看起来像 Superset 的 Flask 包装器的东西。

有没有我误解了一些基本的东西?欢迎任何指点。

来自 Pythonanywhere 的 giles suggested this simple solution

import superset
from superset import app as application

立即生效。例如。整个烧瓶文件看起来像

import sys
import superset

project_home = u'/home/tmo/testsite'
if project_home not in sys.path:
    sys.path = [project_home] + sys.path

from superset import app as application

其中仅最后一行是超集 运行 所必需的。