рдХреБрдЫ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХреЛ 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'
рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
рдкрд╛рдпрдерди 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 рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЯрдХрд░рд╛рддреА рд╣реИред
рдореИрдВ рдкрд╛рдпрдерди рдореЗрдВ рдирдпрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рднреА рд╡рд╣реА рдЧрд▓рддреА рдХрд░рддрд╛ рд╣реВрдВ ....
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреГрдкрдпрд╛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЛ http.py рд╕реЗ рдХреБрдЫ рдФрд░ рдирд╛рдо рджреЗрдВ, рдЕрдиреНрдпрдерд╛ рдпрд╣ stdlib рд╕реЗ http рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЯрдХрд░рд╛рддреА рд╣реИред