windows部署superset

2023-03-19 10:37:33 浏览数 (1)

解决的问题

  • 在WIN10环境下,安装并正常运行Superset
    • 建议使用Python虚拟环境,减少库依赖冲突
  • 不需要安装VC啦!

注意

  • 本教程安装的版本是1.5
    • Superset在2022年7月发布了2.0的大版本更新
    • 如python的版本要求变为3.9 ,同时增加了更多的库依赖等
    • 以下教程未为对2.0版本进行完整更新,现阶段1.5版本的安装仍有一定的通用性,可跳跃性浏览
      • 通常出现问题的地方在于包依赖,是安装Superset时对方的requirement没有指定依赖库版本号的坑,暂未有更好的应对策略
      • 考虑重写requirements.txt文件,指定出现问题的依赖库版本一次性解决依赖问题

限制

  • python 3.7
    • Superset 2.0则要求为3.9

必要的知识

  • 【Python】虚拟环境搭建和使用

部署

1. 部署并进入Python虚拟环境(可选)(建议)

  • Superset的依赖库较多,强烈建议进行该步骤

2. 更新pip,并安装pillow和wheel库

代码语言:javascript复制
python -m pip install --upgrade pip
pip install pillow
pip install wheel
  • 通过pip方式安装的Superset似乎不会安装pillow库,在运行期间会显示Warning
  • 安装wheel库是便于安装其他库
  • 在虚拟环境下更新pip不需要加--user参数

3. 安装python-geohash库(重要)

  • 重点:提前安装该库能跳过安装VC的坑!
  • 在网上下载该库的whl文件
    • 下载页面
    • 注意:需要根据python的版本和系统的位数选择文件
      • 根据系统环境,本次下载选择cp38‑win_amd64.whl
  • 安装whl文件
代码语言:javascript复制
pip install [whl_path]
  • [whl_path]:下载的python-geohash的whl文件地址

4. 安装apache-superset(2022/10/27更新)

代码语言:javascript复制
pip install apache-superset==1.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • 使用清华源能提高下载速度
    • 也可以使用其他的源
    • 如正在使用魔法上网,不要另外指定源
  • 指定版本号可暂时避免因版本更新而导致的库冲突问题(2022/10/27)

5. 处理依赖冲突

5.1 降级markupsafe库

代码语言:javascript复制
pip install markupsafe==2.0.1
  • Superset会导入makrupsafe库的的soft_unicode类,但新版的makrupsafe已弃用该类,因而会导致无法正常启动Superset,需要降级至2.0.1

5.2 降级WTForms库(2022/10/27 更新)

代码语言:javascript复制
pip install WTForms==2.3.3
  • 有部分读者反映遇到No module named 'wtforms.ext'错误,初步原因考虑为superset安装时的requirements.txt没有指定wtforms的版本而安装了最新的版本,导致superset无法兼容
    • 是Superset 2.0新增的依赖库

6. 设置FLASK_APP(重要)

代码语言:javascript复制
set FLASK_APP=superset
  • Superset的运行需要预配置FLASK_APP

7. 初始化数据库、创建管理员账户和初始化权限

代码语言:javascript复制
superset db upgrade
superset fab create-admin
superset init
  • username、firstname、lastname和email都有默认值,可直接回车跳过
  • 需要输入两次密码
  • 上述步骤如有中断,需重新进入虚拟环境(如有),重新设置FLASK_APP

8. 至此,部署完毕


运行

1.进入已部署Superset的虚拟环境(如有)

2.设置FLASK_APP

代码语言:javascript复制
set FLASK_APP=superset
  • 在虚拟环境下,每次运行superset前都需要设置FLASK_APP,否则会报错
  • 启动Superset
代码语言:javascript复制
::基础启动(本地测试)
superset run -p 8088
::进阶启动(开放端口,局域网内可访问)
superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger
  • 在本地使用的情况下,两种启动方式基本是等效的,不过建议使用进阶启动方式

4.运行后,命令行窗口不能关闭,否则会停止服务

  • 可以后台服务方式启动Superset,具体方法详见本文下方“使用优化 - 3. 辅助启动bat”

使用优化(非必须)

1. 加载官方用例

代码语言:javascript复制
superset load_examples
  • 该代码需在启动superset前输入
  • 由于墙的问题,需要魔法上网才能加载,记得在打开命令行前开启全局代理

2. 汉化

  • 定位并进入Superset的库代码文件夹,找到config.py
    • 通常是在安装superset的python环境文件夹的Libsite-packagessuperset
    • 如果有装类似Everything的软件,直接搜site-packagessupersetconfig,一般第一个就是它
  • 右键 - 通过记事本或IDE打开config.py
  • 定位到BABEL_DEFAULT_LOCALE项,将en修改为zh即可
  • 不建议汉化,主要是因为汉化后反而更难理解各项参数

0 人点赞