Я пишу модуль, позволяющий мне писать код на Python 3, но все же запускаю его на 2. На самом деле это выглядит удивительно легко ... что-нибудь еще, что я должен добавить?Из моего (ограниченного) колебания интерактивного интерпретатора, будущие импорты не влияют на Python 3 и рассматриваются как избыточные.
# _2or3.py
'''
Common usage:
from __future__ import print_function, nested_scopes, division, absolute_import, unicode_literals
from _2or3 import *
'''
import sys
if sys.version[0] == '2':
range = xrange
input = raw_input
Очевидно, что есть некоторые вещи, которые вы не можете сделать, которые вы обычно могли бы делатьв 3 (как сжатие словаря), и есть несколько ошибок между языками (например, байт-коды. Похоже, вы никогда не должны использовать байты)
Любые комментарии приветствуются.