建議按順序閱讀
環境說明
阿里雲ESC centos 8.1 python3.7.5
python環境搭建
注意要安裝python3.6+版本
#創建文件夾存放
mkdir /opt/python
cd /opt/python
#下載並解壓
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
tar -zxvf Python-3.7.5.tgz
#安裝編譯器
yum -y install gcc
#安裝make需要的依賴包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
#安裝python3.7需要的依賴包,否則會報錯:“ModuleNotFound:No module named ‘_ctypes’”
yum -y install libffi-devel
#進入解壓後的文件夾中,編譯和安裝(如果之前安裝出錯的朋友,在安裝依賴後重新編譯安裝即可)
cd Python-3.7.5
./configure
make&&make install
#建立軟連接,設置默認python(相當於windows配置環境變量)
ln -s /usr/local/bin/python3 /usr/bin/python
ln -s /usr/local/bin/pip3 /usr/bin/pip
#更行pip
pip install --upgrade pip
centos7.x版本的自帶python2可以參考CentOS下安裝python3.7進行安裝
Superset安裝
網上很多教程都試了,各種報錯,而且基本上都是之前的,語法很多都過時了,目前跟着官網安裝步驟安裝最靠譜,雖然英文看着真費勁,chrome的網頁翻譯平常翻譯挺水的,但翻譯這個網站還是蠻靠譜的!
#安裝virtualenv
pip install virtualenv
#創建虛擬環境
mkdir superset_env
virtualenv superset_env
#激活虛擬環境
cd superset_env/bin
source acitvate
#更新的pip 和setuptools
pip install --upgrade setuptools pip
#安裝superset
pip install apache-superset
第一個坑就在這裏 ——安裝superset
會報這麼個錯,看着一大片紅就頭疼(這隻截圖了一部分,實際報錯大概有兩個這麼長的一段),但是還是很耐心的看完了,我以爲是geohash庫的問題,之前試網上各種版本時候也遇到過這個問題,
親測:python中無法import Geohash ,改完之後就可以 import geohash 調包了
(但是不知道**對這個問題有沒有用**,不過我是先這麼改了,後來也沒有改回來,你們可以直接參照我後面的方法,如果不行再改這步
)
1. 將Geohash文件名改成 geohash
2. geohash文件夾下的 __init__.py 中的 from geohash import decode_exactly, decode, encode 改成 from .geohash import decode_exactly, decode, encode
即:geohash前多加一個 ‘.’ 即可。
具體命令
cd /opt/python/superset_env/lib/python3.7/site-packages
mv Geohash geohash
mv Geohash-1.0.dist-info geohash-1.0.dist-info
cd geohash
vim __init__.py
#i進入insert模式
#geohash前多加一個 ‘.’改成 from .geohash import decode_exactly, decode, encode
#esc退出編輯模式 》》 保存並推出【:wq】
目測真正解決方案 : 刪除了gcc gcc-c ++ libffi-devel python-devel軟件包,然後重新安裝
sudo yum erase gcc gcc-c++ libffi-devel python-devel
sudo yum install gcc gcc-c++ libffi-devel python-devel
參考資料:Installing superset: error: command ‘gcc’ failed with exit status 1
再次執行安裝superset命令 >>>successfully
#安裝superset
pip install apache-superset
# 初始化數據庫——初始化的是自帶的sqlsite
superset db upgrade
# Create an admin user (you will be prompted to set a username, first and last name before setting a password)
$ export FLASK_APP=superset
superset fab create-admin
# Load some data to play with
superset load_examples
# Create default roles and permissions
superset init
到這裏,superset load_examples加載樣例又報錯了 :
urllib.error.URLError: <urlopen error [Errno 111] Connection refused>
網上也有說先執行superset init再執行superset load_examples就可以了,
親測無效
今天先到這裏,後面繼續更新,直到搭建出來爲止,其實已經試了兩三週了,都沒成效,所以前面都沒有進行記錄,這次是最有希望的一次,應該能成功,記錄下留個經驗!