2to3进行多次导入

时间:2014-02-01 13:42:04

标签: python python-3.x python-2to3

我正在编写python2代码,也可以移植到python3(通过运行2to3 during user installation)。

但是2to3有时会进行多次导入:

-import urlparse
-import urllib
-import urllib2
+import urllib.parse
+import urllib.request, urllib.parse, urllib.error
+import urllib.request, urllib.error, urllib.parse

如何让2to3知道重复?

1 个答案:

答案 0 :(得分:0)

这可能是http://www.diveinto.org/python3/porting-code-to-python-3-with-2to3.html

的原因

具体来说,urllib库在python 2和python 3之间发生了变化。以下是具体的更改

Python 2                                Python 3
import urllib                           import urllib.request, urllib.parse, urllib.error
import urllib2                          import urllib.request, urllib.error
import urlparse                         import urllib.parse
import robotparser                      import urllib.robotparser   
from urllib import FancyURLopener       from urllib.request import FancyURLopener
from urllib import urlencode            from urllib.parse import urlencode
from urllib2 import Request             from urllib.request import Request
from urllib2 import HTTPError           from urllib.error import HTTPError 

据我所知,没有解析某种方式就无法避免这种情况 - 如果你想采用这种方法,那么isort(正如你的问题的评论中所建议的)可能是你最好的选择。或者,您可以自己解析代码,或者只是接受您无法轻松解决此问题,并且不太可能导致代码中出现任何实际问题。