Justo lo que dice el título.¿Cómo saber si Python está compilado con UCS-2 o UCS-4?
$ ./configure --help | grep -i ucs
--enable-unicode[=ucs[24]]
Búsqueda en la documentación oficial, encontré esto:
sys.maxunicode: Entero que proporciona el mayor punto de código apoyado por un personaje Unicode. El valor de este depende de la opción de configuración que especifica si los caracteres Unicode se almacenan como UCS-2 o UCS-4.
Lo que no está claro aquí es qué valor (es) corresponde a UCS-2 y UCS-4.
Se espera que el código funcione en Python 2.6+.
Ya no es universalmente correcto para Python 3. Consulte https://docs.python.org/3.4/c-api/unicode.html: 'Desde la implementación de PEP 393 en Python 3.3, los objetos Unicode utilizan internamente un variedad de representaciones'. https://www.python.org/dev/peps/pep-0393/ –
@ Jan-PhilipGehrcke: 'deficient_unicode_build = (sys.maxunicode <0x10ffff)' funciona en cualquier versión de Python (incluso si se usa la representación interna flexible donde 'sys.maxunicode == 0x10ffff'). Las representaciones flexibles permiten obtener resultados correctos, como lo hizo ucs4 en versiones anteriores, mientras que usaba menos memoria que ucs4 en algunos casos. – jfs