参考资料: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开头的权限)
删除分享权限:
删除编辑图表及看板权限:
删除嵌入权限:
删除菜单:
增加数据库和数据集权限: