Я не могу говорить от сообщества, но эти from __future__ import ...
не работают для всех версий Python или не надежны в некоторых случаях.
print_function
и unicode_literals
были добавлены на Python2.6, with_statement
на Python2.5 и другие на Python2.2
Итак, если вы хотите поддерживать 2.6 или более позднюю версию, все в порядке.Если вам все еще требуется поддержка 2.5 или, что еще хуже, 2.4, вам потребуется другой подход.
Использование from __future__ import unicode_literals
не будет работать должным образом, поскольку Python2 позволяет выполнять преобразование из байта в юникод без кодирования, в то время как Python3 не«т.Кроме того, вызов str
или bytes
имеет разные аргументы.
Разница в обработке строк, по-видимому, является главной проблемой для обеспечения совместимости программы с Python2 и Python3.