我遵循用Python 3编写的教程,作者使用
from urllib import parse
这给了我一个错误。
我尝试过使用谷歌并阅读有关图书馆的内容,但似乎无法找到相同的内容。我所有的项目代码都在2.7中,所以我不想仅仅为了这一点而移动3。
提前感谢您的帮助。
答案 0 :(得分:0)
Urllib已经在python 3中进行了重构。在python 2中,urlparse是什么,现在是urllib.parse(在python 3中)。所以只需使用urlparse。你甚至可以这样做:
import urlparse as parse
,其余代码应该相同。
答案 1 :(得分:0)
使您的代码兼容Python 2,而不会失去Python 3的兼容性。 您可以使用像six这样的库,但是对于这个单一导入,这可能就足够了:
try:
from urllib import parse
except ImportError:
import urlparse as parse
请注意,您可能有"隐形"兼容性问题。例如,Python 3中的标准除法总是浮点指向除法,即使在两个整数之间,而在Pyhton 2中则不是。因此,尽管代码不太可能处理URL解析,但您可能需要添加
from __future__ import division
也是Python 3代码的顶部。
通常,我建议编写和使用Python 3代码,使Python 2在需要时兼容,但不能将转换为Python 2(即,不使用3to2或2to3工具,但使用例如六个或一些尝试 - 除了进口)。
这样,该代码已经准备好了Py3,但仍然适用于Py2。