Так почему это произошло?
Это произошло потому, что когда оба C (двоичных) кода были загружены в память, каждый из них обрабатывал строки по-разному.В документации Python четко указано, что: "... сборки Python UCS2 и UCS4 не совместимы в двоичном формате. Имейте это в виду при написании расширений или интерфейсов."
В документации также говоритсячто: " сборки по умолчанию Python используют 16-битный тип для Py_UNICODE и хранят значения Unicode внутри как UCS2."Итак, что вы сделали: установили пакет, совместимый с интерпретатором по умолчанию, и запустили его с несовместимым интерпретатором Python.
Могут ли быть установлены разные версии одних и тех же пакетов в зависимости от конфигурации Python?
Я не уверен, что pip способен обрабатывать варианты пакетов UCS2 и UCS4.Что происходит, когда вы устанавливаете те же пакеты, используя pip из вашего интерпретатора UCS4?Если версия пакета UCS2 установлена при использовании версии pip для UCS4, я бы порекомендовал загрузить исходный дистрибутив пакета и скомпилировать его самостоятельно с помощью UCS4.
Я знаю, что pip может различать os (Windows / Linux) и ABI, но я не думаю, что это может обрабатывать различия UCS.