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...>>>點選+號>>>輸入
然後在搜尋框 輸入 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"}