Superset二开安装流程(windows)
所需文件:
python版本:Python3.7
编译工具:pycharm(可以不要,但是方便二开)
superset版本:1.3
前端编译node.js:v10.15.3
文件都在百度网盘里包括word文档,里面附上了操作步骤的截图
链接:https://pan.baidu.com/s/1qZ1mD8x8rEWdc9pcJW0V2w
提取码:sty3
参考文献:https://www.cnblogs.com/datawalkman/
黄色命令为输入命令 例如
红色底色为注意事项 例如
红色命令为报错信息 例如
安装python3.7
进入Python官网 https://www.python.org/downloads
下滑在红框中选择python版本,然后点击进去
下滑建议选择Windows x86-64 executable installer下载
因为zip的版本下载之后有时会出现很多dll 文件丢失的情况
下载之后选择安装
1.一定不要忘了勾选Add Python 3.7 to PATH(把Python的安装路径添加到系统环境变量的Path变量中,如果不选那就需要自己配置环境变量了)
2.选择Install Now(默认安装到C盘下)或者 Customize installation(自定义安装路径)
3.自定义安装可根据自己的需要进行勾选,如果不知道该选什么,默认的就可以
安装pycharm
双击pycharm-professional-2021.1.exe
修改安装位置后默认下一步
勾选 添加到环境变量中
随后默认安装,安装完成之后打开pycharm
选择Evaluate for free,Evaluate,Continue。
新建项目如下图所示
破解pycharm
依次点击 file>>>Settings>>>Plugins>>>齿轮按钮>>>Manage Plugin Repositorise...>>>点击+号>>>输入https://plugins.zhile.io
然后在搜索框 输入 IDE Eval Reset,然后install这个插件
安装好这个插件之后,在help里面会有 Eval Reset这个按钮就欧克了。
最后,把ide-eval-resetter-2.1.6.zip压缩包直接拖入pycharm中,系统会提示你重启pycharm,重启一下就好了。后续每次重启pycharm都会把使用时间刷新为免费30天
安装node.js
双击安装node-v10.15.3-x64.msi文件,选好安装路径之后全部默认安装,稍微要主要的是有没有自动添加环境变量。
安装完成之后打开命令提示符,cmd命令之后 输入 node -v,看node.js是什么版本的,有版本号就说明环境变量成功了。然后输入 npm -v,有版本号说明npm也安装成功了。这个版本的node.js里自带了npm。
至此安装superset全部的前期准备全部完成。
安装superset
下载源码
1、 去GitHub下载superset 1.3版本:https://github.com/apache/superset/tree/1.3
下载到某个目录,我是下载到D盘下的superset_1.3文件夹内,并重名为superset,即D:\superset_1.3\superset 就是解压后的文件夹
2、 打开命令管理器,cmd
3、 输入 d: (然后回车)
4、 输入 cd D:\superset_1.3\superset (进入解压后的文件夹内)
安装虚拟环境
pip install virtualenv
virtualenv superset_dev
然后
cd superset_dev/Scripts
activate(执行完命令后退出用deactivate)
出现(superset_dev)则代表虚拟环境启动成功,接下来操作都会在虚拟环境中进行
随后输入python -m pip install --upgrade pip
主要目的是升级pip命令,下面几个文件的安装需要高版本的pip命令,否则会报下面错误
安装依赖和配置文件
将这个五个文件从百度网盘下载到D:\superset_1.3\superset目录下。
PS:如果提前下载好了,那就直接复制到此目录下(如下图所示)
随后依次执行这四个命令,注意,要先 cd D:\superset_1.3\superset目录下,再输入下面四个命令,因为这几个文件在superset目录下。
pip install Twisted-20.3.0-cp37-cp37m-win_amd64.whl
pip install Scrapy-1.8.0-py2.py3-none-any.whl
pip install python_geohash-0.8.5-cp37-cp37m-win_amd64.whl
pip install sasl-0.2.1-cp37-cp37m-win_amd64.whl
说明:WARNING没事,不报红不报ERROR就好。
接下来安装requirements.txt
pip install -r requirements.txt
注意:(我输入这命令的时候报错,然后我输入pip freeze > requirements.txt这个命令, 因为需要在执行这一语句前需要先创建requirements.txt 文件,所以必须先执行pip freeze > requirements.txt创建文件,然后再执行pip install -r requirements.txt)
安装base.txt
pip freeze > base.txt
pip install -r base.txt
第一个红框(pip install -r base.txt,报错没有这个文件)
然后安装development.txt
pip freeze > development.txt
pip install -r development.txt
接下来是运行后端
Superset安装方式一(pycharm)
将项目安装到本地python库:在pycharm终端中进入项目根目录,执行下面的命令:
(就是打开项目,选择superset_1.3下面的superset文件)
打开新文件
找到superset文件
在终端输入python setup.py install (要安装很久)
后续所有步骤都可以在终端进行,但是先进入虚拟环境,如上图,先activate激活环境
Superset安装方式二(命令提示符)
(上面这个如果没有pycharm,直接cd 到解压后的文件夹应当也行,如下图)
安装python库
先cd superset-1.3
然后python setup.py install
注意:这里要安装很久很久(差不多十多分钟),甚至还会报超时错误,看运气吧。因为服务器在国外,这里我也不知道怎么用国内源。我是晚上七八点安装的。这段时间速度稍微好点,一次性安装成功,下午时候安装了3次都是超时。
到这里就是成功了
但是会看到有个error,因为Flask-WTF版本太高了,需要的版本是Flask-WTF<0.15.0,>=0.14.2
所以接下来重新安装版本
pip install Flask-WTF==0.14.3
我输入的是
pip install Flask-Babel==2
pip install Flask-JWT-Extended==3.20
pip install Flask-Login==0.4
pip install Flask-OpenID==1.2.5
pip install Flask-Babel==1
这里结束之后建议多做一件事,防止下面报错(主要是我遇见了,顺便给个解决办法)
pip install Pillow(报 No module named PIL时输入这个)
pip install wtforms==2.3.3(报 No module named wtforms.compat)
安装完成之后
安装 superset 开发者模式
pip install -e . (也要很久)
这样就是安装完成
安装好之后如要修改superset用户数据库配置为mysql,执行完上面代码后,可以在pycharm里进入superset目录 找config.py变成自己要用得数据库:
【pycharm162行】SQLALCHEMY_DATABASE_URI = 'mysql://用户名:用户密码@ip地址/superset?charset=UTF8'(?charset=UTF8一定要有,否则会乱码)
同时,要到你的mysql数据库里面,新建superset 名字的数据库,跟上面信息一致。
也可以去文件里找到该文件,以记事本方式修改内容
安装完成之后
创建用户
superset fab create-admin
随后输入用户名,姓,名,邮箱,密码,确认密码(邮箱可以选填,直接回车也可以,其他必填)
例如:
Username [admin]: juan
User first name [admin]: wang
User last name [user]: juan
Email [admin@fab.org]:
Password: 【密码不会显示】
Repeat for confirmation: 【密码不会显示】
出现Admin User juan created.就是创建成功了
初始化数据库
superset db upgrade
首先要修改superset\examples\helpers.py 里面找到base_url,改为
BASE_URL = https://github.com/apache-superset/examples-data
再执行下面
superset load-examples
(反正我是成功一半,没有完全成功)
启动
superset run -h 0.0.0.0 -p 8001 --with-threads --reload --debugger
或者
superset run -h 0.0.0.0 -p 8080
这就是启动成功,然后去浏览器输入http://自己主机的ip地址:端口号
端口号可以自定义,但是要和superset run -h 0.0.0.0 -p 8001 --with-threads --reload –debugger里的【-p】后面的保持一致。
至此,后端文件搞定,下面开始编译前端文件,否则浏览器一直打转。
前端编译
进入解压后源文件的superset-frontend目录下,
cd superset-frontend
或者 cd D:\superset_1.3\superset\superset-1.3\superset-frontend
安装相关依赖:
npm install
到这就install成功了
然后需要修改superset\superset-frontend\webpack.config.js,将原来的jsx 的这块类似语句改为下面的【pycharm里的445行
test: /\.jsx?$/,
// include source code for plugins, but exclude node_modules and test files within them
exclude: [/superset-ui.*\/node_modules\//, /\.test.jsx?$/],
include: [
new RegExp(`${APP_DIR}/src`),
/superset-ui.*\/src/,
new RegExp(`${APP_DIR}/.storybook`),
],
use: [babelLoader],
},
修改好之后执行编译【修改完要记得保存或者关闭文件】
最后执行
npm run dev
到这里就成功了。但是不会出现新的命令行,需要重新开一个命令提示符。
【注意:新开命令提示符之后要先进入项目中激活环境
例 d:
cd D:\superset_1.3\superset\superset_dev\Scripts
activate
可以初始化superset
输入superset init
启动superset
然后启动项目 superset run -h 0.0.0.0 -p 8001 --with-threads --reload --debugger
上面弄完后,可以使用pycharm 打开解压后的文件根目录,这样就能通过pycharm 修改调试代码了,这里说下,为了方便从pycharm上启动这个程序,在解压的源文件根目录下,新建一个start.py文件
文件内容代码为:
import os
from superset import create_app
os.environ["superset_dev"] = os.path.join(os.getcwd(), 'superset_dev/Scripts')
if __name__ == '__main__':
superset_app = create_app()
superset_app.run(host="0.0.0.0", port="5050", debug=True)
这里的port你可以自己随意修改,注意使用的Python解释器需要是superset文件里的
配置数据源
连接数据库
找到数据库位置如图所示
进入之后点击添加数据源
选择这种方式连接数据库
注意:数据库密码要手写,连接之后展示的是XXXXXXX
例如mysql://mysql:XXXXXXXXXX@192.168.3.120/order?charset=utf8
?charset=utf8这个编码要加上,不然数据会乱码
添加数据集
点击添加数据集之后选择要操作的数据表
配置文件修改
修改superset下config.py文件里的一些内容
使得superset可以联动,
"DASHBOARD_NATIVE_FILTERS": True,
"DASHBOARD_CROSS_FILTERS": True,
"DASHBOARD_NATIVE_FILTERS_SET": True,
修改用户权限
PUBLIC_ROLE_LIKE: Optional[str] = "Gamma"
CSV文件导出乱码问题
CSV_EXPORT = {"encoding": "utf-8-sig"}