【教程】Windows系统安装Superset

  • Post author:
  • Post category:其他


参考资料:https://zhuanlan.zhihu.com/p/510061681



一、安装

Windows10系统

Anaconda环境

Superset安装

Superset官网:https://superset.apache.org/

Anaconda下载

官方下载地址:

https://www.anaconda.com/products/individual#Downloads

清华大学镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D

我存了部分在网盘,安装包下载地址:

链接: https://pan.baidu.com/s/1EcaQfbZcni9UjnUMUzLXMg

提取码: a7zv



二、安装及设置Anaconda3



2.1 设置环境变量

在Path中增加

C:\Python\Anaconda3
C:\Python\Anaconda\Scripts
C:\Python\Anaconda\Library\bin
C:\Python\Anaconda\Library\mingw-w64\bin



2.2 设置镜像地址(加快安装时资源下载速度)

conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main/
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/fastai/
# 搜索时显示通道地址
conda config --set show_channel_urls yes
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/



2.3 默认不加载Anaconda环境

conda config --set auto_activate_base false



三、Superset安装步骤



3.1 激活虚拟环境

# 创建虚拟环境,这里选择的是3.9版本
conda create -n python_39 python=3.9
# 激活虚拟环境
conda activate python_39
# 查看虚拟环境列表



3.2 安装 sasl 和 python_geohash等插件

这两个插件的安装是为了避免一些报错问题(可能还是会有报错),注意是要安装在激活的虚拟环境之中。

离线安装(需要下载插件所有的关联,然后一个个安装)

pip install .\python_geohash-0.8.5-cp39-cp39-win_amd64.whl
pip install .\six-1.16.0-py2.py3-none-any.whl
pip install .\sasl-0.3.1-cp39-cp39-win_amd64.whl
pip install .\pytz-2022.6-py2.py3-none-any.whl
pip install .\numpy-1.23.5-cp39-cp39-win_amd64.whl
pip install .\python_dateutil-2.8.2-py2.py3-none-any.whl
pip install .\pandas-1.4.3-cp39-cp39-win_amd64.whl
pip install .\Pillow-9.3.0-cp39-cp39-win_amd64.whl



3.3 安装Superset

pip install apache-superset=2.0.0   或者
Pip install .\apache-superset-2.0.0.tar.gz

指定版本号可暂时避免因版本更新而导致的库冲突问题(2022/10/27)



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

pip uninstall WTForms
pip install WTForms==2.3.3

有部分读者反映遇到No module named ‘wtforms.ext’错误,初步原因考虑为superset安装时的requirement.txt没有指定wtforms的版本而安装了最新的版本,导致superset无法兼容

应该是Superset 2.0新增的依赖库



3.5 降级markupsafe库

pip uninstall markupsafe
pip install markupsafe==2.0.1

Superset会导入makrupsafe库的的soft_unicode类,但新版的makrupsafe已弃用该类,因而会导致无法正常启动Superset,需要降级至2.0.1



3.6 设置FLASK_APP(重要)

set FLASK_APP=superset

Superset的运行需要预配置FLASK_APP



3.7 初始化数据库

# 定位目录至:\envs\python_39\Lib\site-packages\superset后执行
# 初始化数据库
superset db upgrade
# 创建管理员账号
superset fab create-admin
# 载入案例数据
superset load_examples
# 初始化角色和权限
superset init

username、firstname、lastname和email都有默认值,可直接回车跳过

需要输入两次密码

上述步骤如有中断,需重新进入虚拟环境(如有),重新设置FLASK_APP



3.8 运行

# 基础启动(本地测试)
superset run -p 10000
# 进阶启动(开放端口,局域网内可访问)
superset run -h 0.0.0.0 -p 10000 --with-threads --reload --debugger

在本地使用的情况下,两种启动方式基本是等效的,不过建议使用进阶启动方式



3.9 快捷启动方式

在桌面创建 xxx.bat文件,里面写入以下内容:

call cd D:\ProgramData\Anaconda3\envs\superset\Lib\site-packages\superset
call conda activate superset
call set FLASK_APP=superset
call superset run -h 0.0.0.0 -p 10000 --with-threads --reload --debugger
Pause

以上内容,若是在cmd中打开,就不需要call和pause,但是需要一条一条输入,麻烦。



3.10 汉化

打开虚拟环境下Lib/site-packages/superset/config.py

# 源代码是 "en"
BABEL_DEFAULT_LOCALE= "zh"



3.11 修改MySQL数据源

打开虚拟环境下Lib/site-packages/superset/config.py

SQLALCHEMY_DATABASE_URI = 'mysql://superset:superset@192.168.91.65:3306/superset'



3.12 安装SQLServer依赖(如需使用)

pip install pymssql
pip install pyodbc



3.13 安装Oracle依赖(如需使用)

pip install cx_Oracle



3.14 交叉过滤

#交叉过滤
"DASHBOARD_NATIVE_FILTERS": True,#开启过滤级联
"DASHBOARD_CROSS_FILTERS": True,#开启交叉过滤器
"DASHBOARD_NATIVE_FILTERS_SET": True,#过滤集



四、其他依赖包

遇到依赖包问题直接先把下面相对应的安装

pip install mysqlclient
pip install flask-appbuilder
pip install WTForms-JSON
pip install Flask-Compress
pip install flask-migrate
pip install celery
pip install flask-talisman
pip install talisman
pip install sqlparse
pip install flask-caching
pip install bleach
pip install markdown
pip install numpy
pip install pandas
pip install parsedatetime



五、异常处理(基于python 3.9)



5.1 No module named ‘werkzeug.wrappers.etag’

执行superset db upgrade报错:ModuleNotFoundError: No module named ‘werkzeug.wrappers.etag’

pip uninstall Flask 
pip uninstall Werkzeug 

pip install Flask==2.0.2
pip install Werkzeug==2.0.2

参考资料:https://www.cnblogs.com/leo-wong/articles/16578636.html



六、匿名用户角色设置问题

默认外部访问用户是public,授予public gamma权限,可使匿名用户能够查看superset网站(如不让匿名用户查看,则不处理public角色授权内容),修改config.py配置

PUBLIC_ROLE_LIKE: Optional[str] = “Gamma”

旧版本是PUBLIC_ROLE_LIKE_GAMMA=True

在配置文件修改完配置还需要执行命令:superset init

删除Public角色所有菜单权限(Menu开头的权限)

删除分享权限:

在这里插入图片描述

删除编辑图表及看板权限:

在这里插入图片描述

删除嵌入权限:

在这里插入图片描述

删除菜单:

在这里插入图片描述

增加数据库和数据集权限:

在这里插入图片描述



版权声明:本文为prelive原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。