Après un peu de débogage, j'ai réduit l'erreur suivante à werkzeug/http.py#L26 , ce qui donne l'exception suivante : ImportError: cannot import name 'parse_http_list'
. Vous trouverez ci-dessous l'intégralité du retraçage, qui implique une exception à l'intérieur de l'exception tentant de revenir à une ancienne référence python.
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'
Veuillez fournir un exemple pour reproduire ceci.
En utilisant Python 3.5.2, ce paragraphe de werkzeug/http.py
échouera à plusieurs reprises.
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
De plus, le script ci-dessus se plaindra à un niveau plus profond sans le try/except
présent, ce qui m'a alerté d'un possible changement dans les API internes avec urllib. Si cela peut aider, j'ai trouvé le problème à l'origine lors de l'utilisation de Flask 0.12 et de l'exécution du script suivant.
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()
Veuillez renommer votre fichier http.py en autre chose, sinon il entre en conflit avec le module http de stdlib.
Apparemment, Python ne peut pas différencier les scripts du même nom, alors cela m'a envoyé dans une course folle à travers ces bibliothèques... J'apprécie l'aide.
Veuillez renommer votre fichier http.py en autre chose, sinon il entre en conflit avec le module http de stdlib.
Je suis nouveau en Python, donc je fais la même erreur aussi....
Commentaire le plus utile
Veuillez renommer votre fichier http.py en autre chose, sinon il entre en conflit avec le module http de stdlib.