2021-09-06 [superset] Mac上搭建二次开发环境

二次开发环境搭建 (V1.3.0)

目的

  • 用 mac 搭建superset v1.3.0的前后端二次开发环境。
  • superset 后台是个flask web app. 前端是react项目。,
  • 开发环境是热更新,需要同时启动两个服务。一个是服务端的服务 ,一个是前端的打包服务,修改前端的代码时,前端的代码会实时的打包更新到 superset/static/assets 文件夹下,服务端根据这个文件夹内的文件对前端的页面进行渲染。

过程:

1. 先下载源码

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

2. 再安装Python环境

安装linux包依赖

 sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel

安装 python 3.7.9

安装python3.7.9-自己总结(superset自己推荐使用3.7.9)

然后搞一个虚拟python环境用 (以下所有操作都是在此虚拟环境)

cd /superset/
virtualenv venv
source venv/bin/activate

准备环境变量

xcode-select --install
brew install readline pkg-config libffi openssl mysql postgres
pip install --upgrade setuptools pip
export LDFLAGS="-L$(brew --prefix openssl)/lib"
export CFLAGS="-I$(brew --prefix openssl)/include"
export CFLAGS=-stdlib=libc++
pip install -e .   # 安装 superset 开发者模式

如果安装 python-geohash 遇到 ld: library not found for -lstdc++ 的问题, 先确保安装gcc 7, brew info gcc@7, 然后多引入一个变量export CFLAGS=-stdlib=libc++

3. 再安装npm node

brew install node

4. 初始化superset配置

superset db upgrade # 默认是sqlite, 同步数据库数据
superset fab create-admin # 创建admin用户
superset load_examples #下载 superset 案例,需要安全上网, 可选
superset init # 初始化

启动 superset server

superset run -p 3000 --with-threads --reload --debugger

这时访问地址,会发现没有样式资源。

5. 最后配置前端

安装前端项目依赖

cd superset-frontend
npm install

运行前端项目

npm run dev

6. 打开网页 enjoy

image.png

其他问题

1. 想使用mysql作为系统数据库?

先装依赖包

pip install mysqlclient

在superset/config.py中,修改数据库配置:

# The SQLAlchemy connection string.
# SQLALCHEMY_DATABASE_URI = "sqlite:///" +  os.path.join(DATA_DIR, "superset.db")
SQLALCHEMY_DATABASE_URI='mysql://root:123456@localhost:3306/superset_db?charset=UTF8'

2. 想debug后台flask?

第一种是在Pycharm中直接启动flask
第二中是在vscode中命令行启动如下:

export FLASK_APP = superset/__init__.py
export FLASK_ENV = development
export FLASK_DEBUG = 1
flask run

2. 想debug前端?

flask run启动后台,默认端口为5000
修改 superset/webpack.proxy-config.js 中的 supersetPort 为 5000,
然后 npm run dev-server
访问 http://localhost:9000

参考

superset 开发环境搭建
superset官方开发环境搭建

你可能感兴趣的:(2021-09-06 [superset] Mac上搭建二次开发环境)