ImportError: cannot import name ‘soft_unicode’ from 'markupsafe’和ImportError: cannot import name ‘TypedDict’ from ‘typing’ (/opt/module/miniconda3/envs/superset/lib/python3.7/typing.py)
尚硅谷大数据数仓项目superset db upgrade有报错
问题一
ImportError: cannot import name ‘soft_unicode’ from ‘markupsafe’
这个错误好像是新版本的markupsafe代码变动问题产生的,需要退回到2.0.1
python -m pip install markupsafe==2.0.1
#或者
pip3 install --force-reinstall MarkupSafe==2.0.1
解决完这个之后我又出现了新的问题
问题二
ImportError: cannot import name ‘TypedDict’ from ‘typing’ (/opt/module/miniconda3/envs/superset/lib/python3.7/typing.py)
这个问题好像是我解决了,看了下源码,因为python3.7 typing.py这个文件缺少TypedDict 这个类型。你创建一个python3.8的环境就行。先删除superset环境。
要先返回家目录不然有些命令不能执行
步骤一:回到用户家目录
[atguigu@hadoop102 ~]$
步骤二:卸载原来的superset,
#因为卸载superset,所以要先退出superset
(superset) [atguigu@hadoop102 ~]$ conda deactivate
#执行卸载superset
[atguigu@hadoop102 ~]$ conda remove -n superset --all
#卸载完成后按照原来的过程重新安装
第三步:卸载完成后,安装python3.8 python3.9
因为这个教程被舍友锤了–安装3.8不行了,Superset版本又又又更新了,要使用python3.9了舍友做到最后一步,发现我后面又编程3.9,又发现写这个文章的人是我,锤了我一顿,被他要求改过来,
这个问题主要就是python版本问题了,大家如果以后3.9再出问题就看看python有没有更新新版本,往新版本上冲就对了,希望大家解决了问题后在评论区留言,,期待与大家一起进步,加油哦!!!!
#创建Python3.9环境,这一步出错返回家目录执行
[atguigu@hadoop102 ~]$ conda create --name superset python=3.9
有问题看看评论区哦,可能有其他小伙伴解决方案
第四步:激活superset环境
#
[atguigu@hadoop102 ~]$ conda activate superset
#安装Superset之前,需安装以下所需依赖
(superset) [atguigu@hadoop102 ~]$ sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel
#1)安装(更新)setuptools和pip
(superset) [atguigu@hadoop102 ~]$ pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/
#安装Supetset
(superset) [atguigu@hadoop102 ~]$ pip install apache-superset -i https://pypi.douban.com/simple/
#创建管理员用户
(superset) [atguigu@hadoop102 ~]$ export FLASK_APP=superset
#初始化Supetset数据库
(superset) [atguigu@hadoop102 ~]$ superset db upgrade
Usage: superset [OPTIONS] COMMAND [ARGS]… Error: Could not locate a Flask application. You did not provide the “FLASK_APP” environment variable, and a “wsgi.py” or “app.py” module was not found in the current directory.
出现这种错误是因为没有配置管理员用户
执行一下这个就好了
#创建管理员用户
(superset) [atguigu@hadoop102 ~]$ export FLASK_APP=superset
---------------------------------------------追加-------------------------------------------------------------------
有人说还是有问题,评论区或许会有解决办法哦!!!!
如果不行,大家可以试一下下面两位小伙伴的方法!!!
期待与梦想的不期而遇 ,嘻嘻… ~~lov-靓仔