python - Flask verwendet Blueprint und es tritt ein ImportError: Der Name „Blueprint' kann nicht importiert werden?
迷茫
迷茫 2017-05-18 10:52:28
0
1
1425

Ich habe kürzlich Flask gelernt und möchte versuchen, Blaupausen für modulare Anwendungen zu verwenden. Aber selbst beim Ausführen einer einfachen Demo geht es schief.

Diese einfache Anwendung besteht aus zwei Dateien:
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'

Beim Ausführen ist ein Fehler aufgetreten:

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'

Die gleiche Aufforderung erhielt ich auch, als ich versuchte, mit Blueprint ein bestehendes Projekt zu modularisieren. Damals dachte ich, es stünde im Widerspruch zu anderen Codes. Ich habe es heute ausprobiert und festgestellt, dass die Demo nicht einmal ausgeführt werden konnte...

迷茫
迷茫

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

Antworte allen(1)
刘奇

werkzeug 的版本不兼容 python 3.6? 更新一下 werkzeug 试试。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage