ubuntu+pycharm搭建incubator-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,也可達到同樣的效果。
 

發佈了12 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章