ubuntu+pycharm搭建superset开发环境

前言

网上关于superset开发环境搭建的教程有很多,但是基本都已经过时不可用了,所以发出来这篇最新教程,希望大家少走一些弯路。

开发环境:ubuntu 19.10 + pycharm 2019.3.3  + python 3.7

项目版本信息:release分支 0.35.2

一、环境准备

1. 克隆项目到本地:

git clone https://github.com/apache/incubator-superset

2. 准备环境,安装必要的工具包:

sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev

3. 打开项目:运行Pycharm,选择File -> Open选项,打开incubator-superset项目。

4. 设置项目的python运行环境:选择File -> Settings 选项,打开设置界面,选择Project Interpreter选项,如下图所示:

点击如下图所示的位于右侧的设置按钮,选择Add选项:

在弹出来的Add python Interpreter界面,选择Virtualenv Environment -> New environment选项,如下图所示:

在这里需要注意的python版本一定要选成python3的版本,而不是python2。

在这里解释下为什么选择创建了python虚拟环境:在选择创建python虚拟环境后,会在该目录下生成venv文件夹,里面包含了python运行环境,以及项目依赖的第三方库都会被安装在该文件夹下,将项目拷贝到其他机器上部署时,拷贝整个项目文件夹即可,不需要再重新安装第三方依赖包。python虚拟环境主要就是解决包依赖的问题。

5. 更新pip版本:pycharm创建的python虚拟机环境,默认的pip工具存在bug,使用该pip来安装第三方工具包时会报这个错误:No module named 'pip._vendor'。打开Pycham中的终端(pycharm中的终端打开时会自动激活虚拟环境),执行下面命令更新pip:

sudo apt-get install curl && curl https://bootstrap.pypa.io/get-pip.py | python3

6. 安装项目依赖的第三方包:任意打开superset目录下的一个python文件,pycharm会提示需要安装依赖包,点击安装即可。也可以打开项目根目录下的requirements.txt文件,使用python -m pip install xxx 命令手动安装。

7. 重命名superset目录下的typing.py文件为superset_typing.py:该文件与python3自带的模块typing重名,不修改会导致项目运行报错。注意使用Shitf + F6选项来更新文件名,pycharm 会自动更新被引用位置的名字。

二、编译前端模块

1. 环境准备:安装nodejs并设置环境变量,在pycharm终端中输入下面的命令检测是否正确安装:

(venv) wangzhe@wangzhe-ThinkPad:~/PycharmProjects/incubator-superset-master$ node --version
v10.19.0
(venv) wangzhe@wangzhe-ThinkPad:~/PycharmProjects/incubator-superset-master$ npm --version
6.13.4

2. 编译前端:展开superset-frontend文件夹,选中js_build.sh文件,右键 -> Run,开始编译前端项目。

3. 编译生成的文件存放目录:{项目根目录}/static/assets。

三、运行后端

1. 将项目安装到本地python库:在pycharm终端中进入项目根目录,执行下面的命令:

python setup.py install

2. 初始化数据库:

superset db upgrade

3. 创建管理员账号:

export FLASK_APP=superset
flask fab create-admin

4. 加载测试数据:

superset load_examples

5. 项目初始化:

superset init

6. 运行项目:在superset目录下添加新文件run.py,添加如下内容:

from superset import create_app

if __name__ == '__main__':
    app = create_app()
    app.run(host="localhost", port=8080, debug=True)

在main方法左侧会出现运行按钮,点击运行即可,控制台输出内容如下:

打开浏览器,输入网址http://localhost:8080, 会出现如下的界面:

附:

可能一些同学会奇怪,项目是要在pycharm中运行,为什么又要将安装到本地python库呢?这是因为需要使用superset命令来完成项目数据库的初始化。一种可替代方式是使用命令: python3 {项目根目录}/superset/bin/superset xxx,也可达到同样的效果。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章