iTerm2, Unicode y Sympy

En mi máquina Mac (OS X Mavericks) y Ubuntu, he instalado Sympy, que es una biblioteca de Python para matemática simbólica. Parte de sympy es la funcionalidad de printing bonita que utiliza caracteres Unicode para embellecer expresiones simbólicas en los entornos de command-line con soporte Unicode. Por ejemplo, en mi máquina Ubuntu y en su gnome-terminal ejecutando el siguiente código

 from sympy import * x = Symbol("x") pprint(Integral(sqrt(1/x), x)) 

rinde a

  • ¿Puede Safari recordar mis tabs de la última vez?
  • Cómo desconectarse del wifi en Mac OS X
  • ¿Bash lee los scripts de Mac OS X para todos los usuarios (scripts de finalización de tabs) de la ruta /opt/local/etc/bash_completion.d?
  • Eliminar / Desinstalar iTunes en macOS High Sierra (v10.13)
  • OS X El Capitan cambia el nombre del volumen de Windows en cada inicio agregando numbers crecientes al nombre del volumen
  • aplicación que restring tomarse un descanso a veces
  • enter image description here

    Sin embargo, el mismo command en OS X con iTerm2 (que debería admitir unicode) da como resultado

    enter image description here

    Estoy usando sympy 0.7.5 que he hecho desde la fuente con la última compilation de iTerm2 (compilation 1.0.0.20140518). ¿Hay algo que extraño aquí? El desarrollador principal de sympy es uno de la networking StackExchange. Sería grandioso saber su opinión sobre este.

  • ¿Cómo se desactivan por completo las animaciones de cambio de espacio en OS X Yosemite?
  • Cómo deshabilitar el atajo de emoji de Mavericks
  • ¿Cómo puedo encontrar un identificador de JavaScript específico de un website?
  • ¿Cómo puedo saber si una actualización requiere reinicio en macOS Sierra?
  • ¿Cómo puedo configurar el protector de pantalla de Mac OS X cuando no estoy conectado?
  • Espacios en Mavericks: las aplicaciones no restringn su espacio
  • 2 Solutions collect form web for “iTerm2, Unicode y Sympy”

    Finalmente descubrí cuál es el problema. El problema no era con los emuladores de terminal, ya que tanto OSX Terminal como iTerm2 usaban UTF-8 de forma pnetworkingeterminada. Resultó que uno tiene que informar a Python explícitamente que la terminal es capaz de manejar unicode por medio de

     export PYTHONIOENCODING=utf-8 

    Créditos a esta respuesta stackoverflow.

    Asegúrese de que su terminal en las preferences de iTerm -> Perfiles -> Terminal sea compatible con Unicode (la encoding de caracteres debe ser "Unicode (UTF-8)". SymPy elegirá ASCII si el terminal no informa que admite Unicode.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).