建议按顺序阅读
环境说明
阿里云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就可以了,
亲测无效
今天先到这里,后面继续更新,直到搭建出来为止,其实已经试了两三周了,都没成效,所以前面都没有进行记录,这次是最有希望的一次,应该能成功,记录下留个经验!