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

  • Monte la carpeta como un volumen (OSX)
  • Soporte de derecha a izquierda (RTL) de Microsoft Word
  • Función "Breaking News" para OS X Yosemite
  • Apache2 ya no trabaja en Yosemite
  • Rompí mi RUTA editando mi ~ / .bash_profile y Bash no reconocerá la mayoría de los commands
  • Instalar la versión X11 de Firefox en OSX 10.8.2
  • 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 recuperar notas perdidas desde la actualización de Mavericks?
  • ¿Cómo reiniciar el volumen de OS X después de dormir usando launchd?
  • ¿Es este lío de partición divertido que he hecho reparable en el lado de Mac OS X?
  • ¿Puedo deshabilitar wifi en el arranque? El sistema no arranca
  • bindkey no funciona desde el interior del file .cshrc
  • Reinicie el service AFP en High Sierra
  • 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).