Werkzeug: рдЖрдпрд╛рдд рддреНрд░реБрдЯрд┐ рдЕрдкрд╡рд╛рдж рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рджрд┐рд╕ре░ 2016  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pallets/werkzeug

рдХреБрдЫ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХреЛ werkzeug/http.py#L26 рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдкрд╡рд╛рдж рджреЗрддрд╛ рд╣реИ: ImportError: cannot import name 'parse_http_list' ред рдиреАрдЪреЗ рд╕рдВрдкреВрд░реНрдг рдЯреНрд░реЗрд╕рдмреИрдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдкрд╡рд╛рдж рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдкреБрд░рд╛рдиреЗ рдкрд╛рдпрдерди рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/site-packages/werkzeug/http.py", line 26, in <module>
    from urllib2 import parse_http_list as _parse_list_header
ImportError: No module named 'urllib2'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "examples/http.py", line 2, in <module>
    from flask import Flask
  File "/usr/local/lib/python3.5/site-packages/flask/__init__.py", line 17, in <module>
    from werkzeug.exceptions import abort
  File "/usr/local/lib/python3.5/site-packages/werkzeug/__init__.py", line 152, in <module>
    __import__('werkzeug.exceptions')
  File "/usr/local/lib/python3.5/site-packages/werkzeug/exceptions.py", line 71, in <module>
    from werkzeug.wrappers import Response
  File "/usr/local/lib/python3.5/site-packages/werkzeug/wrappers.py", line 26, in <module>
    from werkzeug.http import HTTP_STATUS_CODES, \
  File "/usr/local/lib/python3.5/site-packages/werkzeug/http.py", line 28, in <module>
    from urllib.request import parse_http_list as _parse_list_header
  File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 88, in <module>
    import http.client
  File "/Users/alexgurrola/Projects/intrepid/examples/http.py", line 2, in <module>
    from flask import Flask
ImportError: cannot import name 'Flask'

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреГрдкрдпрд╛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЛ http.py рд╕реЗ рдХреБрдЫ рдФрд░ рдирд╛рдо рджреЗрдВ, рдЕрдиреНрдпрдерд╛ рдпрд╣ stdlib рд╕реЗ http рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЯрдХрд░рд╛рддреА рд╣реИред

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдкрд╛рдпрдерди 3.5.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдпрд╣ рдкреИрд░рд╛рдЧреНрд░рд╛рдл werkzeug/http.py рдмрд╛рд░-рдмрд╛рд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

try:
    from urllib.request import parse_http_list as _parse_list_header
    from urllib.parse import unquote_to_bytes as _unquote
except ImportError:  # pragma: no cover
    from urllib2 import parse_http_list as _parse_list_header, \
        unquote as _unquote

рд╕рд╛рде рд╣реА, рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ try/except рдореМрдЬреВрдж рдмрд┐рдирд╛ рдЧрд╣рд░реЗ рд╕реНрддрд░ рдкрд░ рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдЧреА, рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ urllib рдХреЗ рд╕рд╛рде рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рд╕рддрд░реНрдХ рдХрд┐рдпрд╛ред рдпрджрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдлреНрд▓рд╛рд╕реНрдХ 0.12 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдФрд░ рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реАред

import os
from flask import Flask

app = Flask(__name__)
app.config.from_object(os.environ['APP_SETTINGS'])


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


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

рдХреГрдкрдпрд╛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЛ http.py рд╕реЗ рдХреБрдЫ рдФрд░ рдирд╛рдо рджреЗрдВ, рдЕрдиреНрдпрдерд╛ рдпрд╣ stdlib рд╕реЗ http рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЯрдХрд░рд╛рддреА рд╣реИред

рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдкрд╛рдпрдерди рдПрдХ рд╣реА рдирд╛рдо рдХреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдиреЗ рдореБрдЭреЗ рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЬрдВрдЧрд▓реА рд╣рдВрд╕ рдХрд╛ рдкреАрдЫрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ ... рдореИрдВ рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдХреГрдкрдпрд╛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЛ http.py рд╕реЗ рдХреБрдЫ рдФрд░ рдирд╛рдо рджреЗрдВ, рдЕрдиреНрдпрдерд╛ рдпрд╣ stdlib рд╕реЗ http рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЯрдХрд░рд╛рддреА рд╣реИред

рдореИрдВ рдкрд╛рдпрдерди рдореЗрдВ рдирдпрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рднреА рд╡рд╣реА рдЧрд▓рддреА рдХрд░рддрд╛ рд╣реВрдВ ....

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕