1.准备工作
- 本地安装3.6以上python
- 采用Anaconda 安装虚拟环境
conda create -n yourenvname
activate yourenvname
- 安装mysql,安装mysqlclient,安装nodejs
2.git下载代码,配置安装
2.1 PyCharm 配置
git 地址:https://github.com/apache/incubator-superset
git 下载代码 假设下载位置在 D:\incubator-superset
PyCharm File–>Settings–> Project: incubator-superset–> Project Interpreter
设置interpreter 为 conda 创建的虚拟环境
2.2 修改元数据库为MySQL
因为项目需要,需要把superset 存在sqlite中的数据存储到MySQL,所以在开始安装前,先修改数据库配置信息。
/incubator-superset/superset/config.py
修改SQLAlchemy 配置string
# The SQLAlchemy connection string.
# SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(DATA_DIR, "superset.db")
SQLALCHEMY_DATABASE_URI = 'mysql://root:password@localhost:3306/superset?charset=UTF8'
# SQLALCHEMY_DATABASE_URI = 'postgresql://root:password@localhost/myapp'
2.3 Windows 下更新软连接
删除/incubator-superset/superset/static/assets下的软链接文件
修改软连接
mklink /J "D:\incubator-superset\superset\static\assets" "D:\incubator-superset\superset\assets"
2.4 执行安装
在/incubator-superset 文件夹下,运行
pip install -e .
错误记录1:
Command “python setup.py egg_info” failed with error code 1 in D:\incubator-superset\
解决方式:
修改 D:\incubator-superset\setup.py 文件中
# VERSION_INFO_FILE = os.path.join(
# BASE_DIR, "superset", "static", "assets", "version_info.json"
# )
VERSION_INFO_FILE = os.path.join(
BASE_DIR, "superset", "assets", "version_info.json"
)
错误记录2:
Could not find a version that satisfies the requirement bleach<4.0.0,>=3.0.2 (f
rom apache-superset0.999.0.dev0) (from versions: )
No matching distribution found for bleach<4.0.0,>=3.0.2 (from apache-superset0.
999.0.dev0)
解决方式:
以上可能发生在任意包环节,是因为网络问题造成的超时引起的,可以使用国内源进行安装
pip install -e . -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
2.5 完成superset 配置
python superset db upgrade
fabmanager create-admin --app superset
在这句执行后,需要输入管理员用户名和密码,请牢记信息,后续将使用该信息登录
python superset init
python superset load_examples
错误记录
1.参考其他文档执行创建管理员过程中发生过
(newSuperSet) E:\Project\incubator-superset\new\incubator-superset-master\superset>fabmanager create-admin --app superset
fabmanager is going to be deprecated in 2.2.X, you can use the same commands on the improved 'flask fab '
Username [admin]: joey
User first name [admin]:
User last name [user]:
Email [admin@fab.org]:
Password:
Repeat for confirmation:
Traceback (most recent call last):
File "c:\users\vikin\anaconda3\envs\newsuperset\lib\runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "c:\users\vikin\anaconda3\envs\newsuperset\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "C:\Users\vikin\Anaconda3\envs\newSuperSet\Scripts\fabmanager.exe_main.py", line 7, in
File "c:\users\vikin\anaconda3\envs\newsuperset\lib\site-packages\flask_appbuilder\console.py", line 417, in cli
cli_app()
File "c:\users\vikin\anaconda3\envs\newsuperset\lib\site-packages\click\core.py", line 722, in call
return self.main(*args, **kwargs)
File "c:\users\vikin\anaconda3\envs\newsuperset\lib\site-packages\click\core.py", line 697, in main
rv = self.invoke(ctx)
File "c:\users\vikin\anaconda3\envs\newsuperset\lib\site-packages\click\core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "c:\users\vikin\anaconda3\envs\newsuperset\lib\site-packages\click\core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\users\vikin\anaconda3\envs\newsuperset\lib\site-packages\click\core.py", line 535, in invoke
return callback(*args, **kwargs)
File "c:\users\vikin\anaconda3\envs\newsuperset\lib\site-packages\flask_appbuilder\console.py", line 132, in create_admin
auth_type.get(_appbuilder.sm.auth_type, "No Auth method")
AttributeError: 'NoneType' object has no attribute 'auth_type'
解决办法:
调整了语句执行顺序,先初始化数据库,再创建管理员
2.加载示例数据时发生
raise URLError(err)
urllib.error.URLError: <urlopen error [WinError 10054] 远程主机强迫关闭了一个现
有的连接。>
这个问题应该是因为连接数据源超时,没有很好的解决办法
2.6 编译前端文件,并进入前端开发者模式
以下操作要进入superset/assets目录下
安装编译所需模块
npm install -d
修改package.json的第17行(这里是设置变量,但是此命令在linux和Mac是可以通过的,windows不能通过),在NODE_ENV前面添加set,即
"build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 set NODE_ENV=production webpack --mode=production --colors --progress",
编译前端文件,并进入前端开发者模式
npm run build
npm run dev
2.7 运行Flask
在 incubator-superset/superset 目录下新建 run.py,添加如下内容:
from superset import app
app.run(debug=True, host='0.0.0.0', port=8088)
然后点击运行Pycharm,访问:http://localhost:8088,输入管理员账号跟密码,登录。