CentOS7.9安装部署superset

目录

第一步:安装paython3.7

第二步:修改默认python

第三步:安装工具pip并激活虚拟环境

第四步:激活虚拟环境

第五步:安装开始apache-superset

第六步:汉化步骤

第七步: 安装过过程中的问题解答


第一步:安装paython3.7

下载python3的安装包

cd到想保存安装包的路径下下载(去官网查看最新版下载链接):

wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

1解压到当前目录:

$: tar -zxvf Python-3.7.*.tgz    (不同的安装包对应不同的解压方法)

安装编译器(root用户):

$: yum -y install gcc

安装make需要的依赖包(需要root用户执行):

$: yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

安装python3.7需要的依赖包(需要root用户执行),否则会报错:“ModuleNotFound:No module named ‘_ctypes’”

$: yum -y install libffi-devel

进入解压后的文件夹中,编译和安装(如果之前安装出错的朋友,在安装依赖后重新编译安装即可):

$: cd Python-3.7.*

$: ./configure

$: make&&make install

默认情况下,python3.7安装在/usr/local/bin/

第二步:修改默认python

使默认python变成python3,把之前的python命令改成python2,并软连接python3到python:

$: mv /usr/bin/python /usr/bin/python2

mv:overwrite ‘/usr/bin/python2’? 输入y

$: ln -s /usr/local/bin/python3 /usr/bin/python

备注:如果执行“符号连接的层数过多”,则执行unlink 文件就行。

[root@localhost Python-3.7.0]# mv /usr/bin/python /usr/bin/python2

mv: failed to access "/usr/bin/python2": 符号连接的层数过多

[root@localhost Python-3.7.0]# unlink /usr/bin/python2

修改默认pip

$: find / -name pip3找到pip3

软链到bin:

$: ln -s /usr/local/bin/pip3 /usr/bin/pip

如果出现这个,则执行: $:rm -rf /usr/bin/pip

CentOS7.9安装部署superset

修改yum文件,使之正常运行

yum不支持python3修改并保存:

$: vi /usr/libexec/urlgrabber-ext-down

修改为以下:

    #! /usr/bin/python2.7

    #  A very simple external downloader

    #  Copyright 2011-2012 Zdenek Pavlas

修改yum文件

    $:  vi /usr/bin/yum

文件的 头为

 #! /usr/bin/python2.7

但是,上面三步直接安装,安装的会是在python2的目录下,而不是新安装的python3,因为python2为默认安装。使用pip -V查看如下:

$ pip -V

pip 10.0.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

在这个时候调用pip时会报错,因为系统还不认识pip命令是啥,需要加个连接

1、我们得知道pip装在哪里

$:  whereis pip

pip: /usr/local/bin/pip2.7 /usr/local/bin/pip

2、建立连接

$:  ln -s /usr/local/bin/pip2.7 /usr/bin/pip

如果报“[root@bolu-report-data001 opt]# python -V

-bash: /bin/python: No such file or directory”,则需要坐下软连接,命令如下:

$: ln -s /usr/local/bin/pip3  /usr/bin/python

如果出现:“VersionConflict”, 则将报错文件的指定版本更新成安装的版本就行。

CentOS7.9安装部署superset

更新后的/bin/php文件:

CentOS7.9安装部署superset

第三步:安装工具pip并激活虚拟环境

如果新系统尚未安装工具pip,可通过以下三步来快速完成pip的安装

$: yum -y install epel-release                

$: yum install python-pip                

$:pip install --upgrade pip

如果执行pip命令过程中出现“ModuleNotFoundError: No module named 'pip._internal.cli'”,则执行命令:python -m pip install --upgrade pip。

CentOS7.9安装部署superset

第四步:激活虚拟环境

先执行必要的安装包,防止下面依赖的包用时没有,命令如下:
$: sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel

初始化虚拟机:

$: pip install virtualenv

创建和激活虚拟环境:

$:python3 -m venv venv

$: . venv/bin/activate

 备注:. venv/bin/deactivate或  deactivate env

第五步:安装开始apache-superset

$: pip install apache-superset

在执行“pip install apache-superset”,出现No matching distribution found for pandas的错误提示,如果出现上面问题执行:pip install --upgrade pip,可以避免很多坑。

CentOS7.9安装部署superset

如果出现下面这个错误,则执行需要安装 gcc-c++之后再重新执行 pip install apache-superset。

$:yum install gcc-c++

CentOS7.9安装部署superset

初始化数据库

$: superset db upgrade

创建管理员账户

$: export FLASK_APP=superset

$:superset fab create-admin

加载示例数据,这一步可选,其中可以通过“ superset fab --help”查看帮助命令。

$:superset load_examples

创建默认角色和权限

$: superset init

启动(如果有防火墙,请先将端口号放开,我的端口是8080)

$: superset run -h 0.0.0.0 -p 8080 --with-threads --reload --debugger

备注后台启动:nohup superset run -h 0.0.0.0 -p 8080 --with-threads --reload --debugger &

第六步:汉化步骤

  1. 检查/opt/venv/lib/python3.7/site-packages/superset/translations/zh/LC_MESSAGES/目录下是否有两个文件messages.mo和messages.po。

$:cd /opt/venv/lib/python3.7/site-packages/superset/translations/zh/LC_MESSAGES/

CentOS7.9安装部署superset

  1. 回到目录/opt/venv/lib/python3.7/site-packages/superset修改config.py文件,并执行编译命令“pybabel compile -d translations

$: cd /opt/venv/lib/python3.7/site-packages/superset

$: vim config.py

将“BABEL_DEFAULT_LOCAL”的值改成“zh”。

CentOS7.9安装部署superset$: pybabel compile -d translations

执行编译命令后,zh/LC_MESSAGES/文件夹下多个message.json文件。

CentOS7.9安装部署superset重启服务发现只部分汉化了,是因为我们编译时,部分翻译的英文路径找不到。

CentOS7.9安装部署superset自制文件message.json

到地址https://github.com/ApacheInfra/superset/blob/master/superset/translations/zh/LC_MESSAGES/messages.po,将内容message.json内容copy至本次生成message.json文件,utf-8格式保存。上传至superset的目录zh/LC_MESSAGES/替换原来的message.json文件。

第七步: 安装过过程中的问题解答

1、连接mysql需要安装驱动

$:pip install mysql-connector-python

连接mysql格式(端口号可以不配,默认就是3306):

mysql+mysqlconnector://{username}:{password}@{host}/{database}

2、防火添加端口号:

$:firewall-cmd --zone=public --add-port=8088/tcp –permanent   //放开端口号

$:firewall-cmd --reload   //重新加载配置

如果出现错误“Centos7 firewall-cmd 命令报错 ModuleNotFoundError: No module named ‘gi‘”,

则vim /usr/bin/firewall-cmd修改第一行python为python2.7

CentOS7.9安装部署superset运行  yum install ifconfig出现“no package ifconfig available”则执行  yum install net-tools.x86_64

CentOS7.9安装部署superset我们运行以下命令查找yum search ifconfig

CentOS7.9安装部署superset

以上运行结果,我们只要分析最好一行就可以。Matched: ifconfig 这个 分割行 是用来显示 匹配结果的。

最后一行 中 冒号(:)前面的数据, (net-tools.x86_64 )  是匹配的软件包;冒号(:)后面的数据,(Basic networking tools ) 是对前面包的描述。结合上面的信息,即 通过运行 yum search ifconfig  提示我们: 安装ifconfig 包 只需要安装 net-tools.x86_64 即可。

所以,我们执行 yum install net-tools.x86_64 

-----------------------------------------------------------------------------------------

  1. Was unable to import superset Error: No module named 'wtforms_json'
    1. 解决办法: pip install WTForms-JSON
  2. Was unable to import superset Error: No module named 'flask_compress'
    1. 解决办法:pip install Flask-Compress
  3. Was unable to import superset Error: No module named 'flask_migrate'
    1. 解决办法:pip install flask-migrate

如果报:Could not find a version that satisfies the requirement flask-talisaman,

则执行:pip install flask -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

  1. Was unable to import superset Error: No module named 'celery'
    1. 解决办法:pip install celery
  2. Was unable to import superset Error: No module named 'flask_talisman'
    1. 解决办法:pip install flask-talisaman

如果不行,则执行:pip install  flask_talisman -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

  1. Was unable to import superset Error: No module named 'flask_caching'
    1. 则执行:pip install flask_caching
  2. Was unable to import superset Error: No module named 'sqlparse'
    1. 则执行:pip install 'sqlparse'
  3. Was unable to import superset Error: No module named 'bleach'
    1. 则执行:pip install 'bleach'
  4. Was unable to import superset Error: No module named 'markdown'
    1. 则执行:pip install 'markdown'
  5. Was unable to import superset Error: No module named 'parsedatetime'
    1. 则执行:pip install 'parsedatetime'

13、pkg_resources.ContextualVersionConflict: (Flask 0.12 (/root/venv/lib/python3.7/site-packages), Requirement.parse('Flask<2.0,>=1.0'), {'Flask-JWT-Extended'})

CentOS7.9安装部署superset则执行pip install flask==1.0 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

Looking in indexes: http://pypi.douban.com/simple/

上一篇:诸多改进!Superset 1.2.0 正式发布!


下一篇:字段是字段,属性是属性,字段不是属性,属性看getter或setter