【问题标题】:OAuth - "No module named authlib"超集 - OAuth - “没有名为 authlib 的模块”
【发布时间】:2021-06-13 22:35:57
【问题描述】:

我正在 docker 中的 MacOS 上运行超集,我正在尝试让 OAuth 正常工作。

我已经编辑了配置文件 /docker/pythonpath_dev/superset_config.py 并添加了 OAuth 配置。

我添加的一行是

AUTH_TYPE = AUTH_OAUTH

这需要我导入以下身份验证类型:

from flask_appbuilder.security.manager import (
    AUTH_OID,
    AUTH_REMOTE_USER,
    AUTH_DB,
    AUTH_LDAP,
    AUTH_OAUTH,
)

当我尝试使用以下命令启动超集时:docker-compose -f docker-compose-non-dev.yml up

我收到以下错误:

File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/security/manager.py", line 250, in __init__
from authlib.integrations.flask_client import OAuth
ModuleNotFoundError: No module named 'authlib'

我对 docker 本身还很陌生。我该如何解决这个问题?

【问题讨论】:

    标签: docker apache-superset superset


    【解决方案1】:

    如果其他人遇到这种情况,解决方案是将 Authlib 模块添加到 docker 映像上的 python 环境中。

    将新的 python 模块添加到 docker 映像的过程记录在此处:https://github.com/apache/superset/blob/master/docker/README.md#local-packages

    如果文件发生更改,请在下面引用:

    If you want to add python packages in order to test things like DBs locally, you can simply add a local requirements.txt (./docker/requirements-local.txt) and rebuild your docker stack.
    
    Steps: 
    1. Create ./docker/requirements-local.txt 
    2. Add your new packages 
    3. Rebuild docker-compose 
      a. docker-compose down -v 
      b. docker-compose up
    

    Important 正在运行 docker-compose up不是 docker-compose -f docker-compose-non-dev.yml up。后者似乎没有重建 docker 镜像。

    【讨论】:

    • 不需要重建镜像。就我而言,我只是在 ./docker/requirements-local.txt 中添加了 authlib 依赖项,它们会在 docker-compose -f docker-compose-non-dev.yml up 中自动获取。
    • 你必须添加requirements-local.txt -> Authlib==0.15.5 如 Ruchit Patel 上面所写
    猜你喜欢
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 2019-03-28
    • 2017-12-30
    • 2018-01-06
    • 2018-11-11
    相关资源
    最近更新 更多