superset开发环境配置

来源:互联网 发布:喜欢安静的男生知乎 编辑:程序博客网 时间:2024/06/04 18:07

因为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 virtualenvmkdir envvirtualenv -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 developmentpip install -e .# Create an admin userfabmanager create-admin --app superset# Initialize the databasesuperset db upgrade# Create default roles and permissionssuperset init# Load some data to play withsuperset load_examples# start a dev web serversuperset runserver -d

(8)然后,可以在网页欣赏到我们刚刚部署的superset,然后会发现会少了很多页面组件,导致页面显示不正常。这时,你需要安装配置node(npm),建议下载源代码安装

(9)进入superset/assets/目录,执行下列命令,将需要的前端组件下载到本地

# from the root of the repository, move to where our JS package.json livescd superset/assets/# install yarn, a replacement for `npm install` that is faster and more deterministicnpm install -g yarn# run yarn to fetch all the dependenciesyarnnpm 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,完成配置过程

注意事项: