Python2 изначально создавался только с поддержкой ASCII-символов. Самое главное изменение в Python3 — это нативная обработка символов Unicode. Что повлекло за собой другие изменения в архитектуре языка и ожидаемо оказало влияние на несовместимость 2-ой и 3-ей версий языка.