python - Flask uses Blueprint and an ImportError: cannot import name 'Blueprint' occurs?
迷茫
迷茫 2017-05-18 10:52:28
0
1
1380

I recently learned Flask and want to try using blueprint modular applications. But even when running a simple demo it goes wrong.

This simple application has two files:
app.py

from flask import Flask

app = Flask(__name__)
from calendar import calendar
app.register_blueprint(calendar, url_prefix='/auth')

@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run(port=8023)

calendar.py

    from flask import Blueprint
    calendar = Blueprint('calendar', __name__)
    
    
    @calendar.route('/')
    def test():
        return 'yes'

Error occurred while running:

Traceback (most recent call last):
  File "/Users/vencent/.pyenv/versions/ec-env-3.6.0/lib/python3.6/site-packages/werkzeug/http.py", line 22, in <module>
    from email.utils import parsedate_tz
  File "/Users/vencent/.pyenv/versions/3.6.0/lib/python3.6/email/utils.py", line 33, in <module>
    from email._parseaddr import quote
  File "/Users/vencent/.pyenv/versions/3.6.0/lib/python3.6/email/_parseaddr.py", line 16, in <module>
    import time, calendar
  File "/Users/vencent/PycharmProjects/untitled1/calendar.py", line 1, in <module>
    from flask import Blueprint
ImportError: cannot import name 'Blueprint'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/vencent/PycharmProjects/untitled1/untitled1.py", line 1, in <module>
    from flask import Flask
  File "/Users/vencent/.pyenv/versions/ec-env-3.6.0/lib/python3.6/site-packages/flask/__init__.py", line 17, in <module>
    from werkzeug.exceptions import abort
  File "/Users/vencent/.pyenv/versions/ec-env-3.6.0/lib/python3.6/site-packages/werkzeug/__init__.py", line 151, in <module>
    __import__('werkzeug.exceptions')
  File "/Users/vencent/.pyenv/versions/ec-env-3.6.0/lib/python3.6/site-packages/werkzeug/exceptions.py", line 71, in <module>
    from werkzeug.wrappers import Response
  File "/Users/vencent/.pyenv/versions/ec-env-3.6.0/lib/python3.6/site-packages/werkzeug/wrappers.py", line 26, in <module>
    from werkzeug.http import HTTP_STATUS_CODES, \
  File "/Users/vencent/.pyenv/versions/ec-env-3.6.0/lib/python3.6/site-packages/werkzeug/http.py", line 24, in <module>
    from email.Utils import parsedate_tz
ModuleNotFoundError: No module named 'email.Utils'

I also got the same prompt when I tried to use Blueprint to modularize an existing project. At that time, I thought it was conflicting with other codes. I tried it today and found that the demo couldn't even run...

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

reply all(1)
刘奇

The version of werkzeug is not compatible with python 3.6? Try updating werkzeug.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!