用 Python 2.7 编写的某些程序抱怨ImportError: No module named 'urlparse'
。所以我需要安装该模块,但我无法做到这一点。该模块确实存在,例如在https://docs.python.org/2/library/urlparse.html。但是,apt-get install
也pip install
找不到名为urlparse
、python-urlparse
、urllib
、python-urllib
... 的模块——我收到类似的消息, Could not find any downloads that satisfy the requirement ...
唯一的例外是包python-urllib3
,它可能包含所需的文件,但对于 Python 3 和安装没有帮助。
我已经安装了pip
,pip3
因为我需要 Python 2 的模块(pip 1.4.1 from /usr/lib/python2.7/dist-packages (python 2.7)
)。我的 Ubuntu 是 Xubuntu 13.10。
请问问题出在哪里?pip
模块搜索的位置正确吗?我不知道应该在什么位置搜索...
答案1
urlparse
是标准 Python 2 库的一部分。它作为 Python 的一部分提供;它未在 PyPI 等上单独打包。urlparse.urlparse
(该函数)在 Python 3 中重命名为urllib.parse
。
因此,需要注意以下几点:
您的 Python 2 程序可能在 Python 3 下运行。检查启动脚本以查看它如何选择哪个版本的 Python。它应该会启动,
#!/usr/bin/env python2
但也要仔细检查(通过运行env python2
)它是否加载了 Python 2。某些东西已经吃掉了
/usr/lib/python2.7/urlparse.py
,在这种情况下libpython2.7-stdlib
使用以下命令重新安装包:sudo apt-get install --reinstall libpython2.7-stdlib
或者您有一个造成危害的本地文件......
答案2
如果你需要编写兼容 Python2 和 Python3 的代码,可以使用以下导入
try:
from urllib.parse import urlparse
except ImportError:
from urlparse import urlparse
答案3
如果你正在使用 python 2,请使用以下方式安装
pip install urlparse2