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

jav*_*web 44 python django urllib

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

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

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

输出:

ImportError at /stamp/
No module named urllib.parse
Run Code Online (Sandbox Code Playgroud)

小智 80

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

try:
    from urllib.parse import urlparse
except ImportError:
     from urlparse import urlparse
Run Code Online (Sandbox Code Playgroud)


Pad*_*ham 20

你想使用python2 urlparse:

from urlparse import urlparse
Run Code Online (Sandbox Code Playgroud)


Min*_*Soe 18

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

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

from urlparse import urlparse
Run Code Online (Sandbox Code Playgroud)

urllib被拆分为urllib.parse,urllib.requesturllib.errorPython 3.

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

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

有关SCL的更多信息,请查看页面


Mar*_*oma 10

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

$ sudo -H pip install six
Run Code Online (Sandbox Code Playgroud)

用它:

from six.moves.urllib.parse import urlparse
Run Code Online (Sandbox Code Playgroud)

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

  • @Reishin Six是2015年下载量最多的六十六个Python软件包 - 只有setuptools,requests,virtualenv,distribute和boto的下载频率更高(参见[my analysis](https://martin-thoma.com/analyzing-pypi-metadata/) )).经验丰富的Python开发人员已经安装了这个机会很有可能. (4认同)
  • @Reishin-每当您开发软件时,都必须在添加依赖项时权衡决策。在Native Python中执行所有操作存在风险,因为它会创建更多的代码,您必须对其进行管理,调试,单元测试等。引入模块存在风险,因为您信任其他软件包的维护者来正确维护它们。而且很奇怪的是,如果您尝试编写与python2 / 3兼容的代码,则将使用六个以上的代码。我在很多地方使用它。 (4认同)
  • IMO,这是正确的答案.Six是一个非常有用的模块,用于编写python2/3兼容代码.你可以有四行和一个丑陋的try/catch,或者你可以使用六行. (3认同)

Ram*_*ati 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
Run Code Online (Sandbox Code Playgroud)


use*_*963 5

对于 python 3 pip 安装 urllib

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

更改import urlparse

from urllib import parse as urlparse
Run Code Online (Sandbox Code Playgroud)