我正在将airflow从1.10.5更新到1.10.10。在使用google OAuth时,我在webserver中遇到以下错误
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,而Flash-OAuthlib希望它在那里。
考虑到lepture已经归档了flask-oauthlib并创建了authlib,我在lepture的airflow中看到了关于此更改的PR https://github.com/apache/airflow/pull/6140/files,但它没有被机器人合并并标记为陈旧
有人在Airflow 1.10.10中遇到过这个问题吗?我已经通过更改requirement.txt中的oauthlib version to 2.1.0修复了此问题
发布于 2021-03-18 22:20:10
我们遇到了同样的问题,并通过强制升级flask_oauthlib到0.9.6来暂时修复它:(当我们等待airflow修复其依赖项时)
pip install flask_oauthlib==0.9.6
https://stackoverflow.com/questions/61264984
复制相似问题