没有名为urllib.parse的模块(我该如何安装?)

时间:2015-03-31 00:03:15

标签: python django urllib

我试图在CentOS 7上运行REST API,我读到urllib.parse在Python 3中,但我使用的是Python 2.7.5所以我不知道如何安装它模块。

我安装了所有要求,但仍然无法运行项目。

当我正在寻找网址时,我得到了这个(我使用可浏览界面):

输出:

ImportError at /stamp/
No module named urllib.parse

11 个答案:

答案 0 :(得分:67)

如果您需要编写兼容Python2和Python3的代码,可以使用以下导入

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

答案 1 :(得分:20)

你想要使用python2的urlparse:

from urlparse import urlparse

答案 2 :(得分:16)

根据您提供的信息,您最好的选择是使用Python 3.x.

您的错误表明代码可能是为Python 3编写的,因为它试图导入urllib.parse。如果您已编写软件并控制其源代码,则将导入更改为:

from urlparse import urlparse

urllib在Python 3中被分为urllib.parseurllib.requesturllib.error

如果由于某种原因无法更改导入,我建议您快速查看CentOS中的软件集合。 你可以像这样引入Python 3.3:

  1. yum install centos­-release­-SCL
  2. yum install python33
  3. scl enable python33
  4. 查看this页面了解有关SCL的更多信息

答案 3 :(得分:7)

安装six,Python 2和3兼容性库:

$ sudo -H pip install six

使用它:

from six.moves.urllib.parse import urlparse

(编辑:我删除了另一个答案)

答案 4 :(得分:7)

python3支持urllib.parsepython2支持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

答案 5 :(得分:3)

对于python 3    pip install urllib

在%PYTHON_HOME%\ Lib \ site-packages \ solrcloudpy \ utils.py

中找到utils.py

import urlparse更改为

from urllib import parse as urlparse

答案 6 :(得分:1)

对于Python 3,请使用以下命令:

import urllib.parse

答案 7 :(得分:0)

问题是因为我有一个较低版本的Django(1.4.10),因此Django Rest Framework至少需要Django 1.4.11或更高版本。谢谢他们的答案!

这里是Django Rest要求的链接:http://www.django-rest-framework.org/

答案 8 :(得分:0)

答案 9 :(得分:0)

Python 2.7.11中的urlparse在Python 3中重命名为urllib.parse。 因此,如果您有从urlparse import urlparse这样的代码,我建议您将其更改为从urllib.parse import urlparse 由于您使用的是python 2.7.5,因此使用下面的方法可以解决您的难题

from urlparse import urlparse

代替from urllib.parse import urlparse

答案 10 :(得分:-6)

pip install -U websocket 

我只是用它来解决我的问题