报错1
(superset) [pdl@master ~]$ superset db upgrade
Traceback (most recent call last):
File "/opt/module/miniconda3/envs/superset/bin/superset", line 5, in <module>
from superset.cli.main import superset
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/__init__.py", line 18, in <modul
from flask import current_app, Flask
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/flask/__init__.py", line 14, in <module>
from jinja2 import escape
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/jinja2/__init__.py", line 12, in <module>
from .environment import Environment
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/jinja2/environment.py", line 25, in <modu
from .defaults import BLOCK_END_STRING
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/jinja2/defaults.py", line 3, in <module>
from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/jinja2/filters.py", line 13, in <module>
from markupsafe import soft_unicode
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/opt/module/miniconda3/envs/superset/lib/python3ges/markupsafe/__init__.py)
解决方法:
(superset) [pdl@master ~]$ python -m pip install markupsafe==2.0.1
报错2
(superset) [pdl@master ~]$ superset db upgrade
raceback (most recent call last):
File "/opt/module/miniconda3/envs/superset/bin/superset", line 5, in <module>
from superset.cli.main import superset
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/__init__.py", line 21, in <modul
from superset.app import create_app
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/app.py", line 23, in <module>
from superset.initialization import SupersetAppInitializer
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/initialization/__init__.py", linule>
from superset.security import SupersetSecurityManager
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/security/__init__.py", line 17,
from superset.security.manager import SupersetSecurityManager # noqa: F401
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/security/manager.py", line 68, i
from superset.security.guest_token import (
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/security/guest_token.py", line 1>
from typing import List, Optional, TypedDict, Union
ImportError: cannot import name 'TypedDict' from 'typing' (/opt/module/miniconda3/envs/superset/lib/python3.7/typing.py
将python升级到3.8版本的
#删除原来的旧版本
conda remove -n superset --all
conda create --name superset python=3.8
conda activate superset
#安装superset
pip install apache-superset -i https://pypi.douban.com/simple/
报错3
(superset) [pdl@master ~]$ superset db upgrade
Traceback (most recent call last):
File "/opt/module/miniconda3/envs/superset/bin/superset", line 5, in <module>
from superset.cli.main import superset
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/superset/__init__.py", line 18, in <module>
from flask import current_app, Flask
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/flask/__init__.py", line 7, in <module>
from .app import Flask as Flask
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/flask/app.py", line 27, in <module>
from . import cli
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/flask/cli.py", line 17, in <module>
from .helpers import get_debug_flag
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/flask/helpers.py", line 14, in <module>
from werkzeug.urls import url_quote
ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/werkzeug/urls.py)
解决:
版本问题
(superset) [pdl@master ~]$ pip install werkzeug==2.2.2
报错4
(superset) [pdl@master ~]$ superset db upgrade
Traceback (most recent call last):
File "/opt/module/miniconda3/envs/superset/bin/superset", line 5, in <module>
from superset.cli.main import superset
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/superset/__init__.py", line 21, in <module>
from superset.app import create_app
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/superset/app.py", line 23, in <module>
from superset.initialization import SupersetAppInitializer
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/superset/initialization/__init__.py", line 33, in <module>
from superset.extensions import (
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/superset/extensions/__init__.py", line 32, in <module>
from superset.utils.async_query_manager import AsyncQueryManager
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/superset/utils/async_query_manager.py", line 26, in <module>
from superset.utils.core import get_user_id
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/superset/utils/core.py", line 106, in <module>
from superset.sql_parse import sanitize_clause
File "/opt/module/miniconda3/envs/superset/lib/python3.8/site-packages/superset/sql_parse.py", line 67, in <module>
re.compile(r"'(''|\\\\|\\|[^'])*'", sqlparse.keywords.FLAGS).match,
AttributeError: module 'sqlparse.keywords' has no attribute 'FLAGS'
解决:
(superset) [pdl@master ~]$ pip install sqlparse=='0.4.3'
报错5
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.
解决:
export FLASK_APP=superset
报错6
(superset) [pdl@master ~]$ superset db upgrade
--------------------------------------------------------------------------------
WARNING
--------------------------------------------------------------------------------
A Default SECRET_KEY was detected, please use superset_config.py to override it.
Use a strong complex alphanumeric string and use a tool to help you generate
a sufficiently random sequence, ex: openssl rand -base64 42
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Refusing to start due to insecure SECRET_KEY
解决
- 进入到miniconda3的安装路径下的envs/superset/lib/python3.8/目录
- 创建superset_config.py文件
-
(superset) [pdl@master ~]$ cd /opt/module/miniconda3/envs/superset/lib/python3.8/ (superset) [pdl@master python3.8]$ vi superset_config.py
4.添加如下内容
-
# Superset specific config # SS 相关的配置 # 行数限制 5000 行 ROW_LIMIT = 5000 # 网站服务器端口 8088 SUPERSET_WEBSERVER_PORT = 8088 # Flask App Builder configuration # Your App secret key will be used for securely signing the session cookie # and encrypting sensitive information on the database # Make sure you are changing this key for your deployment with a strong key. # You can generate a strong key using `openssl rand -base64 42` # Flask 应用构建器配置 # 应用密钥用来保护会话 cookie 的安全签名 # 并且用来加密数据库中的敏感信息 # 请确保在你的部署环境选择一个强密钥 # 可以使用命令 openssl rand -base64 42 来生成一个强密钥 SECRET_KEY = "ZT2uRVAMPKpVkHM/QA1QiQlMuUgAi7LLo160AHA99aihEjp03m1HR6Kg" # The SQLAlchemy connection string to your database backend # This connection defines the path to the database that stores your # superset metadata (slices, connections, tables, dashboards, ...). # Note that the connection information to connect to the datasources # you want to explore are managed directly in the web UI # SQLAlchemy 数据库连接信息 # 这个连接信息定义了 SS 元数据库的路径(切片、连接、表、数据面板等等) # 注意:需要探索的数据源连接及数据库连接直接通过网页界面进行管理 #SQLALCHEMY_DATABASE_URI = 'sqlite:path/to/superset.db' # Flask-WTF flag for CSRF # 跨域请求攻击标识 WTF_CSRF_ENABLED = True # Add endpoints that need to be exempt from CSRF protection # CSRF 白名单 WTF_CSRF_EXEMPT_LIST = [] # A CSRF token that expires in 1 year # CSFR 令牌过期时间 1 年 WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 365 # Set this API key to enable Mapbox visualizations # 接口密钥用来启用 Mapbox 可视化 MAPBOX_API_KEY = ''
报错7
-
(superset) [pdl@master python3.8]$ superset db upgrade
-
from marshmallow_enum import EnumField ModuleNotFoundError: No module named 'marshmallow_enum'
解决:
-
(superset) [pdl@master python3.8]$ pip install marshmallow_enum
至此,所有错误已全部解决。