J'essaie de lancer une REST sur CentOS 7, j'ai lu que urllib.parse est dans Python 3 mais j'utilise Python 2.7.5 donc je ne sais pas comment installer ce module.
J'ai installé toutes les conditions requises mais je ne peux toujours pas exécuter le projet.
Lorsque je cherche une URL, je reçois ceci (j'utilise l'interface navigable):
Sortie:
ImportError at /stamp/
No module named urllib.parse
Si vous devez écrire du code compatible avec Python2 et Python3, vous pouvez utiliser le programme d’importation suivant.
try:
from urllib.parse import urlparse
except ImportError:
from urlparse import urlparse
Vous voulez urlparse en utilisant python2:
from urlparse import urlparse
Avec les informations que vous avez fournies, votre meilleur choix sera d’utiliser Python 3.x.
Votre erreur suggère que le code a peut-être été écrit pour Python 3 étant donné qu'il tente d'importer urllib.parse
. Si vous avez écrit le logiciel et maîtrisez son code source, vous devriez modifier l’importation en:
from urlparse import urlparse
urllib
a été scindé en urllib.parse
, urllib.request
, et urllib.error
in Python 3.
Je vous suggère de jeter un rapide coup d'œil aux collections de logiciels de CentOS si vous ne pouvez pas modifier les importations pour une raison quelconque. Vous pouvez importer Python 3.3 comme ceci:
yum install centos-release-SCL
yum install python33
scl enable python33
Vérifiez this page pour plus d'informations sur les SCL
Installez six , la bibliothèque de compatibilité Python 2 et 3:
$ Sudo -H pip install six
Utilise le:
from six.moves.urllib.parse import urlparse
(edit: j'ai supprimé l'autre réponse)
python3
les soutiens urllib.parse
et python2
supporte urlparse
Si vous voulez les deux compatibles, le code suivant peut vous aider.
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
Pour python 3 pip install urllib
trouvez le utils.py
dans% PYTHON_HOME%\Lib\site-packages\solrcloudpy\utils.py
changer la import urlparse
à
from urllib import parse as urlparse
Pour Python 3, utilisez les éléments suivants:
import urllib.parse
Incluez manuellement urllib.parse: https://docs.python.org/3.3/library/urllib.parse.html#module-urllib.parse
Le problème était dû au fait que j’avais une version inférieure de Django (1.4.10), donc Django Rest Framework nécessite au moins Django 1.4.11 ou une version plus grande. Merci pour leurs réponses les gars!
Voici le lien pour les besoins de Django Rest: http://www.Django-rest-framework.org/