webentwicklung-frage-antwort-db.com.de

kein Modul namens urllib.parse (Wie soll ich es installieren?)

Ich versuche, eine REST API unter CentOS 7 auszuführen. Ich habe gelesen, dass urllib.parse in Python 3 ist, aber ich verwende Python 2.7.5, ich weiß also nicht, wie ich dieses Modul installieren soll.

Ich habe alle Voraussetzungen installiert, kann das Projekt aber immer noch nicht ausführen.

Wenn ich nach einer URL suche, erhalte ich Folgendes (ich verwende die durchsuchbare Oberfläche):

Ausgabe:

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

Wenn Sie Python2- und Python3-kompatiblen Code schreiben müssen, können Sie den folgenden Import verwenden

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

Sie möchten mit python2 urlparsen:

from urlparse import urlparse
20

Mit den Informationen, die Sie angegeben haben, verwenden Sie am besten Python 3.x.

Ihr Fehler deutet darauf hin, dass der Code möglicherweise für Python 3 geschrieben wurde, da versucht wird, urllib.parse Zu importieren. Wenn Sie die Software geschrieben haben und die Kontrolle über den Quellcode haben , Sie sollten den Import ändern in:

from urlparse import urlparse

urllib wurde in urllib.parse, urllib.request und urllib.error in Python 3 aufgeteilt.

Ich schlage vor, dass Sie einen kurzen Blick auf Softwaresammlungen in CentOS werfen , wenn Sie die Importe aus irgendeinem Grund nicht ändern können . Sie können Python 3.3 folgendermaßen einspielen:

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

Lesen Sie this , um weitere Informationen zu SCLs zu erhalten

17
Minn Soe

Installieren Sie sechs , die Python 2- und 3-Kompatibilitätsbibliothek:

$ Sudo -H pip install six

Benutze es:

from six.moves.urllib.parse import urlparse

(edit: Ich habe die andere Antwort gelöscht)

10
Martin Thoma

python3 unterstützt urllib.parse und python2 unterstützt urlparse

Wenn Sie beides möchten, kann der folgende Code helfen.

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

Für python 3 pip install urllib

finde das utils.py in% PYTHON_HOME%\Lib\site-packages\solrcloudpy\utils.py

ändere das import urlparse bis

from urllib import parse as urlparse
3
user482963

Verwenden Sie für Python 3 Folgendes:

import urllib.parse
1
Kingz
0
Noel

Das Problem bestand darin, dass ich eine niedrigere Version von Django (1.4.10) hatte, sodass Django Rest Framework mindestens Django 1.4.11 oder höher benötigt. Danke für die Antworten, Leute!

Hier der Link für die Anforderungen von Django Rest: http://www.Django-rest-framework.org/

0
javiercruzweb