Python 3.6 Flask ImportError: cannot import name 'flash'

Python 3.6 Flask ImportError: cannot import name 'flash'

我在尝试 运行 airflow webserver 命令时一直出错 ImportError: cannot import name 'flash'

已经安装了各种包,包括 flask-login、flask、flask-cache、flask-wtf 等。这是在没有互联网连接的服务器上,我不得不手动传输这些包并且 运行 conda install <package> --offline

完整追溯

/usr/local/anaconda/lib/python3.6/site-packages/flask_cache/jinja2ext.py:33: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead.
  from flask.ext.cache import make_template_fragment_key
Traceback (most recent call last):
  File "/usr/local/anaconda/bin/airflow", line 27, in <module>
    args.func(args)
  File "/usr/local/anaconda/lib/python3.6/site-packages/airflow/bin/cli.py", line 678, in webserver
    app = cached_app(conf)
  File "/usr/local/anaconda/lib/python3.6/site-packages/airflow/www/app.py", line 161, in cached_app
    app = create_app(config)
  File "/usr/local/anaconda/lib/python3.6/site-packages/airflow/www/app.py", line 59, in create_app
    from airflow.www import views
  File "/usr/local/anaconda/lib/python3.6/site-packages/airflow/www/views.py", line 46, in <module>
    from flask_login import flash
ImportError: cannot import name 'flash'

谢谢。

正如我在评论中所写,python 库 flask-login 没有名为 flash 的模块或函数。因此你不能写你的代码,它出现在 views.py:

的第 46 行

from flask-login import flash

但是,该函数存在于 python-库 flask 中。因此改为:

from flask import flash