Apache Superset二次开发环境配置

Posted 终回首

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache Superset二次开发环境配置相关的知识,希望对你有一定的参考价值。

版本

node v16.13.0
Apache Superset 1.3.2
Anaconda 4.10.1
Win10

以上软件需要提前安装!!!

一、下载源码

# 下载源码
git clone https://github.com/apache/superset.git
# 切换到目标版本,按需自行修改
git checkout 1.3.2

# 为superset创建一个3.7的python虚拟环境
conda create --name py37 python=3.7
# 激活环境
conda activate py37

二、安装依赖

# 进入superset项目的根目录 
cd superset

# 设置国内pip源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 安装superset 本地测试依赖
pip install -e .

三、初始化数据库

superset的默认数据库是SQLite,据说有很多问题,后面需要切换为mysql

# 初始化数据库
superset db upgrade

四、创建用户

superset fab create-admin

注意:三个名字必须不不同,如果配置同一个会报权限错误!!!

五、下载示例(可选)

下载需要访问国外网站,需安全上网
不下载也不影响使用

superset load_examples

六、初始化

superset init

七、配置前端项目

建议安全上网,速度更快,且不报错

# 进入前端目录
cd superset-frontend
# 下载依赖
npm install

修改superset-frontend\\webpack.config.js

注释代码,加新代码

      // 注释的内容
      // 
      //   test: /\\.jsx?$/,
      //   // include source code for plugins, but exclude node_modules and test files within them
      //   exclude: [/superset-ui.*\\/node_modules\\//, /\\.test.jsx?$/],
      //   include: [
      //     new RegExp(`$APP_DIR/src`),
      //     /superset-ui.*\\/src/,
      //     new RegExp(`$APP_DIR/.storybook`),
      //     /@encodable/,
      //   ],
      //   use: [babelLoader],
      // ,
      // 添加的新代码
      
        test: /\\.jsx?$/,
        // include source code for plugins, but exclude node_modules and test files within them
        exclude: [/superset-ui.*\\/node_modules\\//, /\\.test.jsx?$/],
        include: [
          new RegExp(`$APP_DIR/src`),
          /superset-ui.*\\/src/,
          new RegExp(`$APP_DIR/.storybook`),
          path.resolve(__dirname, 'src'), // 添加本行代码,对 windows 环境不友好
        ],
        use: [babelLoader],
      ,

运行前端项目

npm run dev

八、运行后端项目

用Pycharm打开Superset项目

在Superset项目根目录新建一个名为start.py的文件,内容如下

import os

from superset import create_app

os.environ["superset_dev"] = os.path.join(os.getcwd(), 'superset_dev/Scripts')

if __name__ == '__main__':
    superset_app = create_app()

    superset_app.run(host="localhost", port="3000", debug=True)

右键,Debug 'start'

浏览器打开页面,用注册的用户名密码登录

可以看到存在一些示例

随便点开一个

参考资料

Superset Github
superset/CONTRIBUTING.md
superset 开发环境搭建

以上是关于Apache Superset二次开发环境配置的主要内容,如果未能解决你的问题,请参考以下文章

Apache Superset二次开发环境配置

Superset源码阅读(TODO)

Superset源码阅读(TODO)

Superset源码阅读(TODO)

环境篇:Superset

环境篇:Superset