iTerm2, unicode y sympy

En mi Mac (OS X Mavericks) y la máquina de Ubuntu, he instalado sympy que es una biblioteca de python para la matemática simbólica. Parte de sympy es la bonita funcionalidad de printing que utiliza caracteres unicode para pretalificar 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)) 

hace a

  • ¿Cómo solucionar varias aplicaciones en Mountain Lion todos los icons de la barra de herramientas que faltan?
  • Cómo agregar usuarios ocultos
  • Búsqueda de image inversa / duplicada local para Mac?
  • ¿Cómo cambiar el order de connection de networking?
  • Mac equivalente de Ctrl + Espacio para seleccionar un elemento en una list
  • Cómo crear ~ / .bash_profile y ~ / .profile
  • introduzca la descripción de la imagen aquí

    Sin embargo, el mismo command en OS X con iTerm2 (que debería soportar unicode) resulta en

    introduzca la descripción de la imagen aquí

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

  • ¿Existe un método abreviado de keyboard para minimizar las windows de Mac OS X?
  • Problema de actualización de la aplicación Mac Store en Yosemite
  • Reparar una unidad exFAT en Mac OS X después de que se haya desconectado correctamente
  • ¿Por qué se bloquea iCloud Drive?
  • AirDrop en Macs no compatibles?
  • Dock Folder Stack - Quiero order ascendente
  • 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 en sí, tanto OSX Terminal como iTerm2 estaban usando UTF-8 de forma pnetworkingeterminada. Resultó que uno tiene que informar a python explícitamente que el terminal es capaz de manejar unicode a través de

     export PYTHONIOENCODING=utf-8 

    Créditos a esta respuesta stackoverflow.

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

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