No se puede instalar el módulo de python urlparse

9

algún programa escrito en Python 2.7 se queja de eso ImportError: No module named 'urlparse'. Necesito instalar el módulo, pero no puedo hacerlo. El módulo existe, se describe, por ejemplo, en https://docs.python.org/2/library/urlparse.html . Sin embargo, ninguno apt-get install, ni pip installson capaces de encontrar un módulo llamado urlparse, python-urlparse, urllib, python-urllib... - Estoy recibiendo mensajes como Could not find any downloads that satisfy the requirement ...La única excepción es el paquete python-urllib3que probablemente contiene los archivos necesarios, pero para Python 3 y la instalación de las cuales no ayudó.

He instalado pip, no pip3desde que necesito el módulo para Python 2 ( pip 1.4.1 from /usr/lib/python2.7/dist-packages (python 2.7)). Mi Ubuntu es Xubuntu 13.10.

¿Dónde está el problema, por favor? ¿Está pipbuscando el módulo en los lugares correctos? No sé en qué ubicaciones debería buscar ...

MoreFamed
fuente
salida de salida depip search urlparse
kenn
urlparsees parte de la biblioteca estándar, es decir, se instala automáticamente junto con Python. No podrá instalar il a través de apt, pip o easy_install.
Andrea Corbellini el
Ubuntu 13.10 está desactualizado.
enedil

Respuestas:

13

urlparsees parte de la biblioteca estándar de Python 2. Se envía como parte de Python; no está empaquetado por separado en PyPI et al. urlparse.urlparse(la función) fue renombrada en Python 3 a urllib.parse.

Entonces, algunas cosas a tener en cuenta:

  • Su programa Python 2 podría estar ejecutándose en Python 3. Verifique el script de inicio para ver cómo selecciona qué versión de Python. Probablemente debería comenzar, #!/usr/bin/env python2pero también verificar (ejecutando env python2) que eso carga Python 2.

  • Algo ha comido /usr/lib/python2.7/urlparse.py, en cuyo caso reinstale el libpython2.7-stdlibpaquete con:

    sudo apt-get install --reinstall libpython2.7-stdlib
  • O tienes un archivo local que causa daños ...

Oli
fuente
11

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
Tully
fuente
2

Si está usando Python 2, instálelo usando

pip install urlparse2
Waqar Detho
fuente