Impossibile installare il modulo python urlparse


9

alcuni programmi scritti in Python 2.7 si lamentano che ImportError: No module named 'urlparse'. Quindi devo installare il modulo, ma non sono in grado di farlo. Il modulo esiste, è descritto ad esempio su https://docs.python.org/2/library/urlparse.html . Ciò nonostante, né apt-get install, né pip installsono in grado di trovare un modulo di nome urlparse, python-urlparse, urllib, python-urllib... - Sto ricevendo messaggi come Could not find any downloads that satisfy the requirement ...L'unica eccezione è il pacchetto python-urllib3che probabilmente contiene i file necessari, ma per Python 3 e l'installazione di che non ha aiutato.

Ho installato pip, non da pip3quando ho bisogno del modulo per Python 2 ( pip 1.4.1 from /usr/lib/python2.7/dist-packages (python 2.7)). Il mio Ubuntu è Xubuntu 13.10.

Dov'è il problema, per favore? La pipricerca del modulo è nei posti giusti? Non so in quali località dovrebbe cercare ...


controlla l'output dipip search urlparse
kenn,

urlparsefa parte della libreria standard, ovvero viene installata automaticamente insieme a Python stesso. Non sarai in grado di installare il tramite apt, pip o easy_install.
Andrea Corbellini,

Ubuntu 13.10 non è aggiornato.
enedil,

Risposte:


13

urlparsefa parte della libreria standard di Python 2. Viene spedito come parte di Python; non è impacchettato separatamente su PyPI et al. urlparse.urlparse(la funzione) è stata rinominata in Python 3 in urllib.parse.

Quindi, alcune cose da guardare:

  • Il tuo programma Python 2 potrebbe essere in esecuzione su Python 3. Controlla lo script di avvio per vedere come seleziona quale versione di Python. Probabilmente dovrebbe avviarsi #!/usr/bin/env python2ma anche ricontrollare (eseguendo env python2) che carica Python 2.

  • Qualcosa ha mangiato /usr/lib/python2.7/urlparse.py, nel qual caso reinstallare il libpython2.7-stdlibpacchetto con:

    sudo apt-get install --reinstall libpython2.7-stdlib
  • Oppure hai un file locale che causa malizia ...


11

Se è necessario scrivere codice compatibile con Python2 e Python3, è possibile utilizzare la seguente importazione

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.