ImportError: невозможно импортировать имя 'bytes_type' из 'oauthlib.common' - PullRequest
1 голос
/ 17 апреля 2020

Я обновляю поток воздуха с 1.10.5 до 1.10.10. Я получаю следующую ошибку в веб-сервере при использовании Google OAuth

Traceback (most recent call last):
  File "/home/airflow/.local/bin/airflow", line 37, in <module>
    args.func(args)
  File "/home/airflow/.local/lib/python3.7/site-packages/airflow/utils/cli.py", line 75, in wrapper
    return f(*args, **kwargs)
  File "/home/airflow/.local/lib/python3.7/site-packages/airflow/bin/cli.py", line 900, in webserver
    app = cached_app_rbac(None) if settings.RBAC else cached_app(None)
  File "/home/airflow/.local/lib/python3.7/site-packages/airflow/www_rbac/app.py", line 295, in cached_app
    app, _ = create_app(config, session, testing)
  File "/home/airflow/.local/lib/python3.7/site-packages/airflow/www_rbac/app.py", line 108, in create_app
    update_perms=conf.getboolean('webserver', 'UPDATE_FAB_PERMS'))
  File "/home/airflow/.local/lib/python3.7/site-packages/flask_appbuilder/base.py", line 148, in __init__
    self.init_app(app, session)
  File "/home/airflow/.local/lib/python3.7/site-packages/flask_appbuilder/base.py", line 202, in init_app
    self.sm = self.security_manager_class(self)
  File "/home/airflow/.local/lib/python3.7/site-packages/airflow/www_rbac/security.py", line 177, in __init__
    super(AirflowSecurityManager, self).__init__(appbuilder)
  File "/home/airflow/.local/lib/python3.7/site-packages/flask_appbuilder/security/sqla/manager.py", line 51, in __init__
    super(SecurityManager, self).__init__(appbuilder)
  File "/home/airflow/.local/lib/python3.7/site-packages/flask_appbuilder/security/manager.py", line 249, in __init__
    from flask_oauthlib.client import OAuth
  File "/home/airflow/.local/lib/python3.7/site-packages/flask_oauthlib/client.py", line 20, in <module>
    from .utils import to_bytes
  File "/home/airflow/.local/lib/python3.7/site-packages/flask_oauthlib/utils.py", line 5, in <module>
    from oauthlib.common import to_unicode, bytes_type
ImportError: cannot import name 'bytes_type' from 'oauthlib.common' (/home/airflow/.local/lib/python3.7/site-packages/oauthlib/common.py)

Эта ошибка из-за несоответствия зависимостей. Airflow 1.10.10 устанавливает oauthlib==3.1.0 и Flask-OAuthlib==0.9.5, а в 3.1.0 version of oauthlib отсутствует тип bytes_type, в то время как Fla sh -OAuthlib ожидает его там.

Учитывая, что lepture архивировал flask -oauthlib и создал authlib , я вижу PR в потоке воздуха из lepture об этом изменении https://github.com/apache/airflow/pull/6140/files но он не объединен и не помечен устаревшим ботом

Кто-нибудь сталкивался с этой проблемой в Airflow 1.10.10? Я исправил эту проблему, изменив oauthlib version to 2.1.0 in require.txt

...