web-dev-qa-db-fra.com

pas de module nommé urllib.parse (comment dois-je l'installer?)

J'essaie de lancer une REST sur CentOS 7, j'ai lu que urllib.parse est dans Python 3 mais j'utilise Python 2.7.5 donc je ne sais pas comment installer ce module.

J'ai installé toutes les conditions requises mais je ne peux toujours pas exécuter le projet.

Lorsque je cherche une URL, je reçois ceci (j'utilise l'interface navigable):

Sortie:

ImportError at /stamp/
No module named urllib.parse
41
javiercruzweb

Si vous devez écrire du code compatible avec Python2 et Python3, vous pouvez utiliser le programme d’importation suivant.

try:
    from urllib.parse import urlparse
except ImportError:
     from urlparse import urlparse
74
Agnaldo Marinho

Vous voulez urlparse en utilisant python2:

from urlparse import urlparse
20
Padraic Cunningham

Avec les informations que vous avez fournies, votre meilleur choix sera d’utiliser Python 3.x.

Votre erreur suggère que le code a peut-être été écrit pour Python 3 étant donné qu'il tente d'importer urllib.parse. Si vous avez écrit le logiciel et maîtrisez son code source, vous devriez modifier l’importation en:

from urlparse import urlparse

urllib a été scindé en urllib.parse, urllib.request, et urllib.error in Python 3.

Je vous suggère de jeter un rapide coup d'œil aux collections de logiciels de CentOS si vous ne pouvez pas modifier les importations pour une raison quelconque. Vous pouvez importer Python 3.3 comme ceci:

  1. yum install centos­-release­-SCL
  2. yum install python33
  3. scl enable python33

Vérifiez this page pour plus d'informations sur les SCL

17
Minn Soe

Installez six , la bibliothèque de compatibilité Python 2 et 3:

$ Sudo -H pip install six

Utilise le:

from six.moves.urllib.parse import urlparse

(edit: j'ai supprimé l'autre réponse)

10
Martin Thoma

python3 les soutiens urllib.parse et python2 supporte urlparse

Si vous voulez les deux compatibles, le code suivant peut vous aider.

import sys

if ((3, 0) <= sys.version_info <= (3, 9)):
    from urllib.parse import urlparse
Elif ((2, 0) <= sys.version_info <= (2, 9)):
    from urlparse import urlparse
7
Ram Idavalapati

Pour python 3 pip install urllib

trouvez le utils.py dans% PYTHON_HOME%\Lib\site-packages\solrcloudpy\utils.py

changer la import urlparse à

from urllib import parse as urlparse
3
user482963

Pour Python 3, utilisez les éléments suivants:

import urllib.parse
1
Kingz
0
Noel

Le problème était dû au fait que j’avais une version inférieure de Django (1.4.10), donc Django Rest Framework nécessite au moins Django 1.4.11 ou une version plus grande. Merci pour leurs réponses les gars!

Voici le lien pour les besoins de Django Rest: http://www.Django-rest-framework.org/

0
javiercruzweb