Python 2.7.10 erreur “de urllib.la demande d'importation urlopen” no module named demande
J'ai ouvert le code python de github
. J'ai supposé que c'était python2.x
et a obtenu l'erreur ci-dessus lorsque j'ai essayé de l'exécuter. À partir de la lecture que j'ai vu Python 3 a amorti urllib
lui-même et l'a remplacé avec un certain nombre de bibliothèques, notamment urllib.request
.
Il semble que le code a été écrit en python 3 (une confirmation de la part de quelqu'un qui sait seraient appréciées.)
À ce stade, je ne veux pas passer à Python 3 - je n'ai pas étudié ce qu'il faudrait faire pour que mon code existant.
Pensée il devrait y avoir un urllib
module pour Python 2
, j'ai cherché sur Google (à l'aide de "python2 urllib télécharger") et n'a pas à en trouver un. (Il aurait été caché dans les nombreuses réponses depuis urllib
comprend le téléchargement de la fonctionnalité.) J'ai regardé dans mon Python27/lib
répertoire et de ne pas le voir là.
Puis-je obtenir une version de ce module qui fonctionne sur Python27
? Où et comment?
OriginalL'auteur Steve Maguire | 2015-07-24
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser urllib2:
https://docs.python.org/2/library/urllib2.html
De cette ligne de travail pour remplacer urlopen:
Testé en Python 2.7 sur Macbook Pro
Essayez de poster un lien vers git en question.
OriginalL'auteur NevDev
Au lieu d'utiliser urllib.demande.urlopen() supprimer la demande pour python 2.
urllib.urlopen() vous n'avez pas à demander à python 2.x pour ce que vous essayez de faire. Espérons que cela fonctionne pour vous.
Cela a été testé à l'aide de python 2.7 j'ai reçu le même message d'erreur et ce résolues.
OriginalL'auteur Jonathan Holloway
Devrait tout résoudre
Toujours le même message ici sur Heroku: No module named demande
Si il n'y a pas de urllib.demande, il n'est pas possible d'importer ses sous-module.
Avez-vous jamais comprendre pourquoi Heroku ne pouvais pas trouver le type de demande?
désolé @Siddhartha, pour être honnête, je ne me souviens pas de ce que j'ai fait là-bas, mais vu que je n'ai plus de python applications en cours d'exécution sur Heroku je suppose que j'ai renoncé à essayer de comprendre. Mes travaux sont en cours d'exécution sur Azure aujourd'hui.
OriginalL'auteur Maciej Osowski
Vous pouvez programmer sur la défensive, et de faire de l'importation, comme:
et puis dans le code, il suffit d'utiliser:
OriginalL'auteur boardrider
Vous êtes en droit de le urllib et urllib2 paquets ont été divisés en urllib.demande , urllib.analyser et urllib.erreur paquets en Python 3.x. Les derniers paquets n'existent pas en Python 2.x
De la documentation -
De urllib2 documentation -
Et je suis sûr que le code que vous avez téléchargé a été écrit pour Python 3.x , car ils sont à l'aide d'une bibliothèque qui n'est présent que dans Python 3.x .
Il y a un urllib paquet en python, mais il n'a pas la demande sous-paquetage. Aussi, supposons que vous faites beaucoup de travail et de faire en quelque sorte demande sous-paquetage disponible en Python 2.x .
Il y a une très très forte probabilité que vous allez courir dans plus de questions, il y a beaucoup d'incompatibilité entre Python 2.x et Python 3.x , à la fin, vous auriez probablement réécrire au moins la moitié du code à partir de github (et plus probablement en train de lire et comprendre le code complet à partir de là).
Même alors, il peut y avoir d'autres bugs dus au fait que certains des détails de mise en œuvre changé entre Python 2.x de Python 3.x (à titre d'exemple - compréhension de liste a obtenu son propre espace de noms en Python 3.x)
Vous êtes mieux d'essayer de télécharger et d'utiliser Python 3 , que d'essayer de faire le code écrit pour Python 3.x compatible avec Python 2.x
OriginalL'auteur Anand S Kumar
Pour l'instant, il semble que je pourrais obtenir plus que par l'ajout d'un
?
après l'URL.OriginalL'auteur user3291138