Superset win10环境下安装部署

一、环境依赖

  • Win10操作系统
  • anaconda
  • python3.6

 

二、开始安装

  • 创建虚拟环境,为了不让superset包与原先的包产生依赖关系(为避免出现不必要的错误,建议使用python3.6及以上版本)
conda create -n superset python=3.6
  • 激活虚拟环境
activate superset
  • 更新pip
python -m pip install --upgrade pip
  • 安装superset 分别输入以下:
pip install apache-superset -i https://pypi.douban.com/simple

pip install superset -i https://pypi.douban.com/simple
  • 安装组件(-i https://pypi.douban.com/simple表示通过国内镜像下载,速度会快些,也可以不加)
pip install wtforms_json flask_compress celery flask_migrate flask_talisman flask_caching sqlparse bleach markdown numpy pandas parsedatetime pathlib2 simplejson humanize geohash polyline geopy cryptography backoff msgpack pyarrow contextlib2 croniter retry selenium isodate -i https://pypi.douban.com/simple
  • geohash这个组件安装之后在site-packages下其目录是大写的"Geohash",这导致geohash这个组件pip install之后,仍然报找不到。我们把文件夹名"Geohash"修改为“geohash”。再将geohash文件夹下_init_.py文件,用文本打开,里面的from geohash修改成 from .geohash

 

  • 创建用户名
set FLASK_APP=superset (解决AttributeError: 'NoneType' object has no attribute 'auth_type')

flask fab create-admin (输入用户名密码并记住,之后要用)
  • 初始化数据库
先切换到superset的安装目录的bin路径下:cd XXX\Lib\site-packages\superset\bin

初始化数据库:XXX\Lib\site-packages\superset\bin>python superset db upgrade
  • 加载例子
python superset load_examples

或者

python superset load_examples

注意:1)以上命令的选择需根据superset包提供的命令决定,可通过python superset查看

2)出现以下错误,可直接忽略,不影响后续操作(该操作是加载数据源提供例子,供我们练习使用,该操作出错,那么superset里面就不会加载数据源,但不影响superset的使用)知道如何解决的小伙伴,欢迎给出答案

  • 初始化角色和权限
python superset init
  • 启动服务
python superset run --debugger (解决无法新建dashboard问题)

  • 在浏览器地址栏中输入红框中的地址后,出现以下界面,则说明安装成功:

注意:用户名和密码是上文中设置的用户名和密码
 

三、报错处理

  • 若出现安装包不存在问题,则按要求安装包
  • 连接mysql报错,需要安装 mysqlclient 、pymysql
  • sasl需要找对应版本的whl安装,下载到本地后使用pip install ....; 比如我的是 sasl-0.2.1-cp36-cp36m-win_amd64.whl
  • superset signal.signal报错属性不存在(“module" object has no attribute 'SIGALRM')
    • 注释掉这部分代码,不影响实际的使用,代码路径 C:\Users\用户名\AppData\Local\Continuum\anaconda3\envs\superset\Lib\site-packages\superset\utils\core.py(大概在727到745行)
    def __enter__(self) -> None:
        try:
            if threading.current_thread() == threading.main_thread():
                # signal.signal(signal.SIGALRM, self.handle_timeout)
                # signal.alarm(self.seconds)
                pass
        except ValueError as ex:
            logger.warning("timeout can't be used in the current context")
            logger.exception(ex)
 
    def __exit__(  # pylint: disable=redefined-outer-name,unused-variable,redefined-builtin
        self, type: Any, value: Any, traceback: TracebackType
    ) -> None:
        try:
            # signal.alarm(0)
            pass
        except ValueError as ex:
            logger.warning("timeout can't be used in the current context")
            logger.exception(ex)

参考文档:https://blog.csdn.net/qq_43887455/article/details/107351328

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值