windows部署superset
解决的问题
- 在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+
必要的知识
部署
1. 部署并进入Python虚拟环境(可选)(建议)
- Superset的依赖库较多,强烈建议进行该步骤
2. 更新pip,并安装pillow和wheel库
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文件
pip install [whl_path]
- [whl_path]:下载的python-geohash的whl文件地址
4. 安装apache-superset(2022/10/27更新)
pip install apache-superset==1.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
- 使用清华源能提高下载速度
- 也可以使用其他的源
- 如正在使用魔法上网,不要另外指定源
- 指定版本号可暂时避免因版本更新而导致的库冲突问题(2022/10/27)
5. 处理依赖冲突
5.1 降级markupsafe库
pip install markupsafe==2.0.1
- Superset会导入makrupsafe库的的soft_unicode类,但新版的makrupsafe已弃用该类,因而会导致无法正常启动Superset,需要降级至2.0.1
5.2 降级WTForms库(2022/10/27 更新)
pip install WTForms==2.3.3
- 有部分读者反映遇到No module named 'wtforms.ext'错误,初步原因考虑为superset安装时的requirements.txt没有指定wtforms的版本而安装了最新的版本,导致superset无法兼容
- 是Superset 2.0新增的依赖库
6. 设置FLASK_APP(重要)
set FLASK_APP=superset
- Superset的运行需要预配置FLASK_APP
7. 初始化数据库、创建管理员账户和初始化权限
superset db upgrade
superset fab create-admin
superset init
- username、firstname、lastname和email都有默认值,可直接回车跳过
- 需要输入两次密码
- 上述步骤如有中断,需重新进入虚拟环境(如有),重新设置FLASK_APP
8. 至此,部署完毕
运行
1.进入已部署Superset的虚拟环境(如有)
2.设置FLASK_APP
set FLASK_APP=superset
- 在虚拟环境下,每次运行superset前都需要设置FLASK_APP,否则会报错
- 启动Superset
::基础启动(本地测试)
superset run -p 8088
::进阶启动(开放端口,局域网内可访问)
superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger
- 在本地使用的情况下,两种启动方式基本是等效的,不过建议使用进阶启动方式
4.运行后,命令行窗口不能关闭,否则会停止服务
- 可以后台服务方式启动Superset,具体方法详见本文下方“使用优化 - 3. 辅助启动bat”
使用优化(非必须)
1. 加载官方用例
superset load_examples
- 该代码需在启动superset前输入
- 由于墙的问题,需要魔法上网才能加载,记得在打开命令行前开启全局代理
2. 汉化
- 定位并进入Superset的库代码文件夹,找到config.py
- 通常是在安装superset的python环境文件夹的Lib\site-packages\superset
- 如果有装类似Everything的软件,直接搜site-packages\superset\config,一般第一个就是它
- 右键 - 通过记事本或IDE打开config.py
- 定位到BABEL_DEFAULT_LOCALE项,将en修改为zh即可
- 不建议汉化,主要是因为汉化后反而更难理解各项参数