因为superset在python2下对中文支持差,所以,我们的配置中使用python3.6。另外,superset自带的sqllite数据库不可能满足生产的需要,所以我们将superset的系统信息存储在mysql中。为了开发python代码的需要,我们将superset开发环境配置在pycharm中。
(1)安装python3
如果你打算python2和python3共存,请参考https://www.cnblogs.com/JahanGu/p/7452527.html
(2)安装virtualenv
因为是开发环境,所以我们采取python虚拟环境。
pip install virtualenv
mkdir env
virtualenv -p python3 env//系统中有多个python,可以手动置顶python版本
(3)安装pycharm CE
(4)打开pycharmCE,选择从version control创建项目。如果你不打算对github进行贡献,直接从superset master拉代码即可。否则,你需要将superset的master代码fork到自己在github上的仓库,再从自己的仓库拉下来。
(5)配置工程的解释器。在解释器页面新建虚拟环境,选择虚拟环境使用我们刚刚安装的python3
(6)启动的虚拟环境
source env/bin/activate
(7)使用命令行,依次执行以下命令
# install for development
pip install -e .
# Create an admin user
fabmanager create-admin --app superset
# Initialize the database
superset db upgrade
# Create default roles and permissions
superset init
# Load some data to play with
superset load_examples
# start a dev web server
superset runserver -d
(8)然后,可以在网页欣赏到我们刚刚部署的superset,然后会发现会少了很多页面组件,导致页面显示不正常。这时,你需要安装配置node(npm),建议下载源代码安装
(9)进入superset/assets/目录,执行下列命令,将需要的前端组件下载到本地
# from the root of the repository, move to where our JS package.json lives
cd superset/assets/
# install yarn, a replacement for `npm install` that is faster and more deterministic
npm install -g yarn
# run yarn to fetch all the dependencies
yarn
npm run sync-backend
(10)运行完上述指令后,你的superset就可以正常工作了。但是,使用的数据库是自带的sqllite,用于保存系统的配置信息。对于生产应用,我们希望将系统设置保存到mysql中。
在config.py中,我们找到如下配置项目
# The SQLAlchemy connection string.
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(DATA_DIR, 'superset.db')
# SQLALCHEMY_DATABASE_URI = 'mysql://myapp@localhost/myapp'
# SQLALCHEMY_DATABASE_URI = 'postgresql://root:password@localhost/myapp'
显然,我们也许把sqllite配置注释掉而使用mysql似乎就能解决问题,然而不行,会报没有mysql-python库。mysql-python库目前还不支持python3。所以,我们使用PyMySQL
pip install PyMySQL
最终,我们会将配置改为
# The SQLAlchemy connection string.
# SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(DATA_DIR, 'superset.db')
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://myapp@localhost/myapp'
# SQLALCHEMY_DATABASE_URI = 'postgresql://root:password@localhost/myapp'
(11)最后运行superset runserver -d,完成配置过程
注意事项: