之前安利了大家Superset,后台留言的同学比较多,主要是安装上的各种坑。superset因为是企业级的轻量BI,对window的支持不太好。所以大家疑问比较多,单独增加一篇推文在这里统一解答下。
sasl安装错误
Failed building wheel for sasl error: Microsoft Visual C++ 10.0 is required. Get it with "Microsoft Windows SDK 7.1":
这个错误是因为sasl的安装需要C++编译,最简单的方法是下载一个whl格式的文件。http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
下载文件,sasl‑0.2.1‑cp34‑cp34m‑win_amd64.whl,cp34对应的是python版本。pip install xxxxx/sasl‑0.2.1‑cp34‑cp34m‑win_amd64.whl
仍旧是pip install的方式,后面对应文件所在的路径,简单方法是将文件拖拽到cmd窗口。
superset不是内部或外部命令
这是命名行没有写入环境变量,在cmd中切换至superset安装目录下的bin文件夹。
输入cd 路径(要带空格的),如下图案例。如果anaconda安装在D盘,首先得输入「D:」切换系统盘,然后再CD。
当目录环境变为,类似XXX\Lib\site-packages\superset\bin> 时,输入python superset db upgrade即可正确启动superset初始化,superset命令前都要有python前缀。
以后每次用都要这样,并且要先进入虚拟环境。
superset runserver失败
Superset对windows的支持并不好,正常的runserver是启动不了的,必须以开发者模式启动。
python superset runserver -d
否则会报文件缺失错误。
Failed to start remote query on a worker
这是在建立database后,执行sql query报错。
在编辑database的时候,Expose in SQL Lab和Allow Run Sync都要勾选上,下面其余的不要勾选,保留这两个就好了。
“module" object has no attribute 'SIGALRM'
在勾选完Expose in SQL Lab和Allow Run Sync后,windows用户可能会出现上面的一些错误。
这是windows下依赖包不兼容产生的。Python的signal包只作用于linux和mac,在win是不启作用的,所以这一块在win会产生冲突于是报错。开发团队应该是不小心的。
解决方法就是把相关部分的代码注释掉,这块代码的功能是超时后把query进程杀掉,注释后没大影响。大家记得就好,我测试过了。
如上图,把signal所在行都注释,下面再加一个pass就好了,粗糙了点,没太大影响。文件在superset/utils.py下,代码中间部分。
其他一些小问题都是细节的,比如防火墙屏蔽,比如SQL读取的时候数据类型报错,这个可以靠调试解决。
大概问题是这几个,有的话可以继续留言。