2015-03-31 14 views
20

Sto provando a eseguire un'API REST su CentOS 7, ho letto urllib.parse è in Python 3 ma sto usando Python 2.7.5 così io non so come installare questo modulo.Nessun modulo chiamato urllib.parse (Come dovrei installarlo?)

Ho installato tutti i requisiti ma non riesco ancora a eseguire il progetto.

quando sto cercando un URL ottengo questo (sto usando l'interfaccia sfogliabile):

uscita:

ImportError at /stamp/ 
No module named urllib.parse 

risposta

12

Volete urlparse utilizzando python2:

from urlparse import urlparse 
13

Con le informazioni fornite, la soluzione migliore è utilizzare Python 3.x.

L'errore indica che il codice potrebbe essere stato scritto per Python 3 dato che sta tentando di importare urllib.parse. Se hai scritto il software e avere il controllo su suo codice sorgente, si dovrebbe cambiare l'importazione di:

from urlparse import urlparse 

urllib è stato suddiviso in urllib.parse, urllib.request, e urllib.error in Python 3.

I suggerire di dare una rapida occhiata alle raccolte software in CentOS se non si è in grado di modificare le importazioni per qualche motivo. È possibile portare in Python 3.3 come questo:

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

check this pagina per ulteriori informazioni su limiti specifici di concentrazione

0

Il problema era perché avevo una versione inferiore di Django (1.4.10), quindi Django Rest Framework necessita almeno di Django 1.4.1 1 o più grande. Grazie per le loro risposte ragazzi!

Qui il link per le esigenze di Django Riposo: http://www.django-rest-framework.org/

-4
pip install -U websocket 

mi basta usare questo per risolvere il mio problema

+0

Ho visto questa risposta da qualche parte, e anche se questo risolve il problema perché ha una maggiore autonomia come dipendenza, non è il modo corretto di risolverlo. – erm3nda

32

Se è necessario scrivere codice che è python2 e python3 compatibile è possibile utilizzare il seguente importazione

try: 
    from urllib.parse import urlparse 
except ImportError: 
    from urlparse import urlparse 
+0

La risposta che mi preme su py2 e py3 è molto meglio :-) – erm3nda

0

Per Python 3, utilizzare il seguente:

import urllib.parse 
3

per Python 3 install urllib

trovare il utils.py in% PYTHON_HOME% \ Lib \ site-packages \ solrcloudpy \ utils.py

cambiamento del import urlparse a

from urllib import parse as urlparse 
0

Installare six, Python 2 e 3 Compatibility Library:

$ sudo -H pip install six 

Usalo:

from six.moves.urllib.parse import urlparse 

(edit: ho cancellato l'altro risposta)