首先說下,為什么要這么做,因為二開需要,二開要有源碼,然后對源碼修改,編譯,所以不能通過類似https://zhuanlan.zhihu.com/p/271695878這種方式,直接安裝;
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,cd D:\superset_1.3\superset,就是進入解壓后的文件夾內
3、依次執行下面命令:
#創建虛擬環境
pip install virtualenv
virtualenv superset_dev
然后
cd superset_dev/Scripts
activate(執行完命令后退出用deactivate)
4、下面安裝依賴庫,cd .. 到解壓后的文件夾,比如我這里是 cd D:\superset_1.3\superset
將下面的這5個文件復制到這個文件夾下:
文件下載放到百度網盤,自己下載
鏈接:https://pan.baidu.com/s/12z1-qkBL3vjbelmZv2mFpA
提取碼:b0h0
放好后,依次執行下面命令
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
安裝base:
pip install -r requirements/base.txt
安裝dev:
pip install -r requirements/development.txt
如果出現import _brotli找不到,需要pip install brotlipy
運行后端
將項目安裝到本地python庫:在pycharm終端中進入項目根目錄,執行下面的命令:
python setup.py install
(上面這個如果沒有pycharm,直接cd 到解壓后的文件夾應當也行,沒試過,我是按照這個來的)
安裝 superset 開發者模式
pip install -e .
如要修改superset用戶數據庫配置為mysql,執行完上面代碼后,進入superset目錄 找config.py變成自己要用得數據庫:
SQLALCHEMY_DATABASE_URI = 'mysql://用戶名:用戶密碼@ip地址/superset?charset=UTF8'
同時,要到你的mysql數據庫里面,新建superset 名字的數據庫,跟上面信息一致
# Create an admin user in your metadata database (use `admin` as username to be able to load the examples)
superset fab create-admin
提醒下,必須要建立個admin名稱用戶,因為這后面的加載示例數據,必須需要admin用戶名,當然你也可以再新建其他的admin 角色的用戶
回有提示輸入用戶名,firstname lastname 郵箱 密碼,除了用戶名和密碼必須填寫,且必須記住以外,其他可以直接回車跳過
# Initialize the database
superset db upgrade
# Load some data to play with.
# Note: you MUST have previously created an admin user with the username `admin` for this command to work.
首先要修改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
至此,后端文件搞定,下面開始編譯前端文件
進入解壓后源文件的superset-frontend目錄下,cd superset-frontend
安裝相關依賴:
npm install
安裝完后,
修改superset\superset-frontend\webpack.config.js,將原來的jsx 的這塊類似語句改為下面的
{ 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') ], use: [babelLoader], },
注意啊,一定要改,否則編譯不通過,尤其注意path.resolve(__dirname, './src')這句
執行編譯
npm run dev
可以了,等待完成,最后說下,完成后,並不像其他語句一樣,執行完,就會出現指針顯示,我忘記截圖了,后面補上完成樣子;
上面弄完后,可以使用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你可以自己隨意修改
然后每次想啟動,運行下這個文件就可以了,如果你不想用pycharm執行啟動,那么就打開 cmd,然后執行:
還可以把這個做成bat文件,以后點擊下就可以了,這個晚點發上來;
至此,結束,之所以這么復雜,不直接用annaconda這種安裝,就是為了做代碼調試,可以用pycharm來調試代碼,另外修改前端代碼都需要修改源碼,然后編譯下,通過annaconda的方式沒有源碼,所以無法二次編譯,對於二開來說,沒法繼續玩,這是我暫時的理解,也是小菜一個,有什么其他的想法和思路環境評論區留言;