1. 程式人生 > 其它 >superset二次開發安裝流程-windows下最詳細安裝

superset二次開發安裝流程-windows下最詳細安裝

Superset二開安裝流程(windows)

所需檔案:

python版本:Python3.7

編譯工具:pycharm(可以不要,但是方便二開)

superset版本:1.3

前端編譯node.js:v10.15.3

檔案都在百度網盤裡包括word文件,裡面附上了操作步驟的截圖

連結:https://pan.baidu.com/s/1qZ1mD8x8rEWdc9pcJW0V2w

提取碼:sty3

參考文獻:https://www.cnblogs.com/datawalkman/

黃色命令為輸入命令 例如

紅色底色為注意事項 例如

紅色命令為報錯資訊 例如

安裝python3.7

進入Python官網 https://www.python.org/downloads

下滑在紅框中選擇python版本,然後點選進去

下滑建議選擇Windows x86-64 executable installer下載

因為zip的版本下載之後有時會出現很多dll 檔案丟失的情況

下載之後選擇安裝

1.一定不要忘了勾選Add Python 3.7 to PATH(把Python的安裝路徑新增到系統環境變數的Path變數中,如果不選那就需要自己配置環境變量了)

2.選擇Install Now(預設安裝到C盤下)或者 Customize installation(自定義安裝路徑)

3.自定義安裝可根據自己的需要進行勾選,如果不知道該選什麼,預設的就可以

安裝pycharm

雙擊pycharm-professional-2021.1.exe

修改安裝位置後預設下一步

勾選 新增到環境變數中

隨後預設安裝,安裝完成之後開啟pycharm

選擇Evaluate for free,Evaluate,Continue。

新建專案如下圖所示

破解pycharm

依次點選 file>>>Settings>>>Plugins>>>齒輪按鈕>>>Manage Plugin Repositorise...>>>點選+號>>>輸入

https://plugins.zhile.io

然後在搜尋框 輸入 IDE Eval Reset,然後install這個外掛

安裝好這個外掛之後,在help裡面會有 Eval Reset這個按鈕就歐克了。

最後,把ide-eval-resetter-2.1.6.zip壓縮包直接拖入pycharm中,系統會提示你重啟pycharm,重啟一下就好了。後續每次重啟pycharm都會把使用時間重新整理為免費30天

安裝node.js

雙擊安裝node-v10.15.3-x64.msi檔案,選好安裝路徑之後全部預設安裝,稍微要主要的是有沒有自動新增環境變數。

安裝完成之後開啟命令提示符,cmd命令之後 輸入 node -v,看node.js是什麼版本的,有版本號就說明環境變數成功了。然後輸入 npm -v,有版本號說明npm也安裝成功了。這個版本的node.js裡自帶了npm。

至此安裝superset全部的前期準備全部完成。

安裝superset

下載原始碼

1、 去GitHub下載superset 1.3版本:https://github.com/apache/superset/tree/1.3

下載到某個目錄,我是下載到D盤下的superset_1.3資料夾內,並重名為superset,即D:\superset_1.3\superset 就是解壓後的資料夾

2、 開啟命令管理器,cmd

3、 輸入 d: (然後回車)

4、 輸入 cdD:\superset_1.3\superset (進入解壓後的資料夾內)

安裝虛擬環境

pip install virtualenv

virtualenv superset_dev

然後

cd superset_dev/Scripts

activate(執行完命令後退出用deactivate)

出現(superset_dev)則代表虛擬環境啟動成功,接下來操作都會在虛擬環境中進行

隨後輸入python -m pip install --upgrade pip

主要目的是升級pip命令,下面幾個檔案的安裝需要高版本的pip命令,否則會報下面錯誤

安裝依賴和配置檔案

將這個五個檔案從百度網盤下載到D:\superset_1.3\superset目錄下。

PS:如果提前下載好了,那就直接複製到此目錄下(如下圖所示)

隨後依次執行這四個命令,注意,要先 cd D:\superset_1.3\superset目錄下,再輸入下面四個命令,因為這幾個檔案在superset目錄下。

pip install Twisted-20.3.0-cp37-cp37m-win_amd64.whl
pip install Scrapy-1.8.0-py2.py3-none-any.whl
pip install python_geohash-0.8.5-cp37-cp37m-win_amd64.whl
pip install sasl-0.2.1-cp37-cp37m-win_amd64.whl

說明:WARNING沒事,不報紅不報ERROR就好。

接下來安裝requirements.txt
pip install -r requirements.txt

注意:(我輸入這命令的時候報錯,然後我輸入pip freeze > requirements.txt這個命令, 因為需要在執行這一語句前需要先建立requirements.txt 檔案,所以必須先執行pip freeze > requirements.txt建立檔案,然後再執行pip install -r requirements.txt)

安裝base.txt

pip freeze > base.txt

pip install -r base.txt

第一個紅框(pip install -r base.txt,報錯沒有這個檔案)

然後安裝development.txt

pip freeze > development.txt
pip install -r development.txt

接下來是執行後端

Superset安裝方式一(pycharm)


將專案安裝到本地python庫:在pycharm終端中進入專案根目錄,執行下面的命令:

(就是開啟專案,選擇superset_1.3下面的superset檔案)

開啟新檔案

找到superset檔案

在終端輸入python setup.py install (要安裝很久)

後續所有步驟都可以在終端進行,但是先進入虛擬環境,如上圖,先activate啟用環境

Superset安裝方式二(命令提示符)

(上面這個如果沒有pycharm,直接cd 到解壓後的資料夾應當也行,如下圖)

安裝python庫

先cd superset-1.3

然後python setup.py install

注意:這裡要安裝很久很久(差不多十多分鐘),甚至還會報超時錯誤,看運氣吧。因為伺服器在國外,這裡我也不知道怎麼用國內源。我是晚上七八點安裝的。這段時間速度稍微好點,一次性安裝成功,下午時候安裝了3次都是超時。

到這裡就是成功了

但是會看到有個error,因為Flask-WTF版本太高了,需要的版本是Flask-WTF<0.15.0,>=0.14.2

所以接下來重新安裝版本

pip install Flask-WTF==0.14.3

我輸入的是

pip install Flask-Babel==2

pip install Flask-JWT-Extended==3.20

pip install Flask-Login==0.4

pip install Flask-OpenID==1.2.5

pip install Flask-Babel==1

這裡結束之後建議多做一件事,防止下面報錯(主要是我遇見了,順便給個解決辦法)

pip install Pillow(報 No module named PIL時輸入這個)

pip install wtforms==2.3.3(報 No module named wtforms.compat)

安裝完成之後

安裝 superset 開發者模式

pip install -e . (也要很久)

這樣就是安裝完成

安裝好之後如要修改superset使用者資料庫配置為mysql,執行完上面程式碼後,可以在pycharm裡進入superset目錄 找config.py變成自己要用得資料庫:
【pycharm162行】SQLALCHEMY_DATABASE_URI = 'mysql://使用者名稱:使用者密碼@ip地址/superset?charset=UTF8'(?charset=UTF8一定要有,否則會亂碼)

同時,要到你的mysql資料庫裡面,新建superset 名字的資料庫,跟上面資訊一致。

也可以去檔案裡找到該檔案,以記事本方式修改內容

安裝完成之後

建立使用者

superset fab create-admin

隨後輸入使用者名稱,姓,名,郵箱,密碼,確認密碼(郵箱可以選填,直接回車也可以,其他必填)

例如:

Username [admin]: juan

User first name [admin]: wang

User last name [user]: juan

Email [[email protected]]:

Password: 【密碼不會顯示】

Repeat for confirmation: 【密碼不會顯示】

出現Admin User juan created.就是建立成功了

初始化資料庫

superset db upgrade

首先要修改superset\examples\helpers.py 裡面找到base_url,改為

BASE_URL = https://github.com/apache-superset/examples-data

再執行下面

superset load-examples

(反正我是成功一半,沒有完全成功)

啟動
superset run -h 0.0.0.0 -p 8001 --with-threads --reload --debugger
或者
superset run -h 0.0.0.0 -p 8080

這就是啟動成功,然後去瀏覽器輸入http://自己主機的ip地址:埠號

埠號可以自定義,但是要和superset run -h 0.0.0.0 -p 8001 --with-threads --reload –debugger裡的【-p】後面的保持一致。

至此,後端檔案搞定,下面開始編譯前端檔案,否則瀏覽器一直打轉。

前端編譯

進入解壓後原始檔的superset-frontend目錄下,

cd superset-frontend

或者 cd D:\superset_1.3\superset\superset-1.3\superset-frontend

安裝相關依賴:
npm install

到這就install成功了

然後需要修改superset\superset-frontend\webpack.config.js,將原來的jsx 的這塊類似語句改為下面的【pycharm裡的445行

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`),

],

use: [babelLoader],

},

修改好之後執行編譯【修改完要記得儲存或者關閉檔案】


最後執行

npm run dev

到這裡就成功了。但是不會出現新的命令列,需要重新開一個命令提示符。

【注意:新開命令提示符之後要先進入專案中啟用環境

例 d:

cd D:\superset_1.3\superset\superset_dev\Scripts

activate

可以初始化superset

輸入superset init

啟動superset

然後啟動專案 superset run -h 0.0.0.0 -p 8001 --with-threads --reload --debugger

上面弄完後,可以使用pycharm 開啟解壓後的檔案根目錄,這樣就能通過pycharm 修改除錯程式碼了,這裡說下,為了方便從pycharm上啟動這個程式,在解壓的原始檔根目錄下,新建一個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="0.0.0.0", port="5050", debug=True)

這裡的port你可以自己隨意修改,注意使用的Python直譯器需要是superset檔案裡的

配置資料來源

連線資料庫

找到資料庫位置如圖所示

進入之後點選新增資料來源

選擇這種方式連線資料庫

注意:資料庫密碼要手寫,連線之後展示的是XXXXXXX

例如mysql://mysql:[email protected]/order?charset=utf8

?charset=utf8這個編碼要加上,不然資料會亂碼

新增資料集

點選新增資料集之後選擇要操作的資料表

配置檔案修改

修改superset下config.py檔案裡的一些內容

使得superset可以聯動,

"DASHBOARD_NATIVE_FILTERS": True,

"DASHBOARD_CROSS_FILTERS": True,

"DASHBOARD_NATIVE_FILTERS_SET": True,

修改使用者許可權

PUBLIC_ROLE_LIKE: Optional[str] = "Gamma"

CSV檔案匯出亂碼問題

CSV_EXPORT = {"encoding": "utf-8-sig"}