我正在编写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知道重复?
答案 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
(正如你的问题的评论中所建议的)可能是你最好的选择。或者,您可以自己解析代码,或者只是接受您无法轻松解决此问题,并且不太可能导致代码中出现任何实际问题。