Superset基于Windows 10的安装
Superset 是一款由 Airbnb 开源的“现代化的企业级 BI(商业智能) Web 应用程序”,其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。参考网上的安装总是出错,这里记录一下安装过程。很有参考的一篇文章:Superset在windows下的安装配置及基础教程
一、首先安装python3,可以去官网下载并安装,记得安装时勾选加入环境变量。记得自己的安装目录,我选的是默认安装路径:
C:\Users\xxx\AppData\Local\Programs\Python\Python37
二、国外pypi镜像下载较慢,更改为国内的镜像,采用清华的镜像,网上一般说的阿里的镜像地址有点问题,注意查询修改。
临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
设为默认
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
网上说修改镜像后,部分仍会从国外选择,此时选择修改python安装目录下的文件:
XXX\Python37\Lib\site-packages\setuptools\package_index.py
搜索关键字:PackageIndex,改为下面所示
class PackageIndex(Environment):
"""A distribution index that scans web pages for download URLs"""
def __init__(
self, index_url="https://pypi.tuna.tsinghua.edu.cn/simple", hosts=('*',),
ca_bundle=None, verify_ssl=True, *args, **kw
):
三、安装superset,执行命令
pip install superset
此时,会安装依赖,会花点时间。注意是否有报错,哪里没有安装成功,可以网上下载.whl文件,直接安装即可。我报错如下所示。
ERROR: No matching distribution found for prison<1.0.0,>=0.1.2 (from flask-appbuilder<2.3.0,>=2.1.9->superset)
pip install "C:\Users\xxxx\Downloads\prison-0.1.2-py2.py3-none-any.whl"
如果担心,可以多执行一遍安装。文件下载地址:https://pypi.org/project/prison/#files
四、其他操作
创建管理员帐号
fabmanager create-admin --app superset
初始化数据库 (windows下,先进入到Python安装目录xxx/lib/site-packages/superset/bin下)
Python superset db upgrade
加载例子(后续操作都需要在xxx/lib/site-packages/superset/bin下),这里需要等待一段时间,类似无响应,等待即可。
Python superset load_examples
初始化角色和权限
Python superset init
启动服务,端口 8088, 使用 -p 更改端口号。
Python superset run -p 8088
网上一般使用Python superset runserver -d,会报错如下
Usage: superset [OPTIONS] COMMAND [ARGS]...
Error: No such command "runserver".
自此,Superset安装启动成功。打开http://127.0.0.1:8088即可进行后续操作。
其他
将 Expose in SQL Lab 和 Allow Run Sync 都勾选上,其余的不要勾选,如果报错AttributeError: module 'signal' has no attribute 'SIGALRM'
,是由于 Windows 环境下依赖包不兼容导致的 —— Python 的 signal 包只作用于 Linux 和 Mac ,在 Windows 下不启作用。
直接定位错误文件(例如我的是XXX/lib/site-packages/superset/utils/core.py),注释掉signal所在行,增加pass即可。
def __enter__(self):
try:
pass
#signal.signal(signal.SIGALRM, self.handle_timeout)
#signal.alarm(self.seconds)
except ValueError as e:
logging.warning("timeout can't be used in the current context")
logging.exception(e)
def __exit__(self, type, value, traceback):
try:
pass
#signal.alarm(0)
except ValueError as e:
logging.warning("timeout can't be used in the current context")
logging.exception(e)