Estoy intentando ejecutar una API REST en CentOS 7, leí que urllib.parse está en Python 3, pero estoy usando Python 2.7.5, así que no sé cómo instalar este módulo.
Instalé todos los requisitos pero aún no puedo ejecutar el proyecto.
Cuando busco una URL, obtengo esto (estoy usando la interfaz de navegación):
Salida:
ImportError at /stamp/ No module named urllib.parse
Si necesita escribir código que sea compatible con Python2 y Python3 puede usar la siguiente importación
try: from urllib.parse import urlparse except ImportError: from urlparse import urlparse
Quieres urlparse usando python2:
from urlparse import urlparse
Con la información que ha proporcionado, lo mejor será usar Python 3.x.
Su error sugiere que el código puede haber sido escrito para Python 3 dado que está intentando importar urllib.parse
. Si ha escrito el software y tiene control sobre su código fuente, debe cambiar la importación a:
from urlparse import urlparse
urllib
se dividió en urllib.parse
, urllib.request
y urllib.error
en Python 3.
Le sugiero que eche un vistazo rápido a las colecciones de software en CentOS si no puede cambiar las importaciones por algún motivo. Puedes traer Python 3.3 así:
yum install centos-release-SCL
yum install python33
scl enable python33
Visite esta página para obtener más información sobre SCL
python3
admite urllib.parse
y python2
admite urlparse
Si desea que ambos sean compatibles, entonces el siguiente código puede ayudar.
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
Instala seis , la biblioteca de compatibilidad de Python 2 y 3:
$ sudo -H pip install six
Úsalo:
from six.moves.urllib.parse import urlparse
(edit: he eliminado la otra respuesta)
Para python 3 pip instalar urllib
encuentra el utils.py
en% PYTHON_HOME% \ Lib \ site-packages \ solrcloudpy \ utils.py
cambiar la import urlparse
a
from urllib import parse as urlparse
Para Python 3, usa lo siguiente:
import urllib.parse
El problema fue porque tenía una versión inferior de Django (1.4.10), por lo que Django Rest Framework necesita al menos Django 1.4.11 o superior. Gracias por sus respuestas chicos!
Aquí el enlace para los requisitos de Django Rest: http://www.django-rest-framework.org/
Incluya manualmente urllib.parse: https://docs.python.org/3.3/library/urllib.parse.html#module-urllib.parse
pip install -U websocket
Solo uso esto para solucionar mi problema