转换Python 3库以在2.7中使用

时间:2016-03-20 11:00:26

标签: python python-2.7 python-3.x

我遵循用Python 3编写的教程,作者使用

from urllib import parse

这给了我一个错误。

我尝试过使用谷歌并阅读有关图书馆的内容,但似乎无法找到相同的内容。我所有的项目代码都在2.7中,所以我不想仅仅为了这一点而移动3。

提前感谢您的帮助。

2 个答案:

答案 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。