superset db upgrade报错记录

报错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

解决

  1. 进入到miniconda3的安装路径下的envs/superset/lib/python3.8/目录
  2. 创建superset_config.py文件
  3. (superset) [pdl@master ~]$  cd /opt/module/miniconda3/envs/superset/lib/python3.8/
    (superset) [pdl@master python3.8]$ vi superset_config.py
    

    4.添加如下内容

  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

  5. (superset) [pdl@master python3.8]$ superset db upgrade
    

  6.     from marshmallow_enum import EnumField
    ModuleNotFoundError: No module named 'marshmallow_enum'
    

    解决:

  7. (superset) [pdl@master python3.8]$ pip install marshmallow_enum
    

    至此,所有错误已全部解决。

  8. 参考superset db upgrade报错记录-CSDN博客

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值