Подтвердить что ты не робот

Нет модуля с именем urllib.parse(как его установить?)

Я пытаюсь запустить REST API на CentOS 7, я читаю urllib.parse в Python 3, но я использую Python 2.7.5, поэтому я не знаю, как установить этот модуль.

Я установил все требования, но все еще не могу запустить проект.

Когда я ищу URL-адрес, я получаю это (я использую интерфейс, доступный для просмотра):

Вывод:

ImportError at /stamp/
No module named urllib.parse
4b9b3361

Ответ 1

Если вам нужно написать код, совместимый с Python2 и Python3, вы можете использовать следующий импорт

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

Ответ 2

Вы хотите использовать urlparse с помощью python2:

from urlparse import urlparse

Ответ 3

С предоставленной вами информацией лучше всего использовать Python 3.x.

В вашей ошибке указано, что код может быть написан для Python 3, если он пытается импортировать urllib.parse. Если вы написали программное обеспечение и имеете контроль над его исходным кодом, следует изменить импорт:

from urlparse import urlparse

urllib был разбит на urllib.parse, urllib.request и urllib.error в Python 3.

Я предлагаю вам быстро взглянуть на коллекции программного обеспечения в CentOS , если вы по какой-то причине не можете изменить импорт. Вы можете ввести Python 3.3 следующим образом:

  • yum install centos­-release­-SCL
  • yum install python33
  • scl enable python33

Откроем эту страницу для получения дополнительной информации о SCL

Ответ 4

Установите шесть, библиотеку совместимости Python 2 и 3:

$ sudo -H pip install six

Используйте это:

from six.moves.urllib.parse import urlparse

(изменение: я удалил другой ответ)

Ответ 5

python3 поддерживает urllib.parse и python2 поддерживает urlparse

Если вы хотите, чтобы оба были совместимы, то следующий код может помочь.

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

Обновление: измените условие для поддержки более высоких версий if (3, 0) <= sys.version_info:.

Ответ 6

Для python 3  pip install urllib

найдите utils.py в% PYTHON_HOME%\Lib\site-packages\solrcloudpy\utils.py

измените значение import urlparse на

from urllib import parse as urlparse

Ответ 7

Для Python 3 используйте следующее:

import urllib.parse

Ответ 8

Проблема заключалась в том, что у меня была более низкая версия Django (1.4.10), поэтому для Django Rest Framework требуется, по крайней мере, Django 1.4.11 или больше. Спасибо за ответы, ребята!

Здесь ссылка для требований Django Rest: http://www.django-rest-framework.org/

Ответ 10

Urlparse в Python 2.7.11 был переименован в urllib.parse в Python 3. Итак, если у вас есть такой код из urlparse import urlparse, я предлагаю вам заменить его на urllib.parse import urlparse Поскольку вы используете Python 2.7.5, использование приведенного ниже решения вашей проблемы

from urlparse import urlparse

Вместо from urllib.parse import urlparse

Ответ 11

pip install -U websocket 

Я просто использую это, чтобы исправить мою проблему.