Если вам не нужен Python 2.5, вы можете использовать новый стиль, кроме: операторов в 2.x.
Таким образом, единственным отличием являются имена модулей.Вы можете try
оба вручную, как в Сроу ответ .Но вам, вероятно, следует использовать six
, futurize
или modernize
, как рекомендуют официальные документы по портированию и большинство других руководств по двойному версионированию и портированию, и это именно то, чтоони хороши для.
С six.moves
:
from six.moves import http_client
from six.moves import urllib_request
try:
page = urllib_request.urlopen(urls).read()
except http_client.IncompleteRead as e:
page = e.partial
Или с future
:
from future import standard_library
standard_library.install_aliases()
import http.client
import urllib.request, urllib.error, urllib.parse
try:
page = urllib.request.urlopen(urls).read()
except http.client.IncompleteRead as e:
page = e.partial
Или, что еще лучше, просто напишите код 2.7:
import httplib
import urllib2
try:
page = urllib2.urlopen(urls).read()
except httplib.IncompleteRead as e:
page = e.partial
… затем запустите на нем futurize
, и он автоматически даст вам код future
выше.