Python Unicode Decode Error al importar matplotlib

Intento usar matplotlib en mi script de Python pero recibí este error en el terminal:

Traceback (most recent call last): File "graphique.py", line 5, in  import matplotlib.pyplot as plt File "/home/xavier/anaconda/lib/python2.7/site-packages/matplotlib/__init__.py", line 1048, in  rcParams = rc_params() File "/home/xavier/anaconda/lib/python2.7/site-packages/matplotlib/__init__.py", line 897, in rc_params fname = matplotlib_fname() File "/home/xavier/anaconda/lib/python2.7/site-packages/matplotlib/__init__.py", line 748, in matplotlib_fname fname = os.path.join(os.getcwd(), 'matplotlibrc') File "/home/xavier/anaconda/lib/python2.7/posixpath.py", line 80, in join path += '/' + b UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 66: ordinal not in range(128) 

Aquí está mi código de python, simplemente escribí

 # -*- coding: utf-8 -*- import numpy as np from math import * import matplotlib.pyplot as plt 

¿Que tengo que hacer?

El problema es que tiene un carácter no ASCII en su directorio de trabajo actual.

En realidad, eso no debería ser un problema, pero se debe a una combinación de otras cosas:

  • matplotlib desea buscar en su directorio de trabajo actual un archivo matplotlibrc local que anule el predeterminado.
  • Python cree que estás usando la configuración regional C en lugar de la configuración regional UTF-8 agradable a la que Ubuntu 14 debería estar por defecto.

Entonces, para una solución rápida, simplemente ejecute su script desde un directorio diferente, que no tenga caracteres que no sean ASCII.

Si realmente quieres resolver el problema:

  • Asegúrese de tener la última versión de Ubuntu 14, Anaconda y matplotlib.
  • Desde el shell, echo $LANG . El resultado debe estar vacío, o algo con UTF-8 en él. Si no, busque AskUbuntu para saber cómo solucionarlo.
  • Asegúrese de que su shell y su terminal estén configurados en UTF-8.

A partir de una búsqueda rápida de los problemas de matplotlib , esto parece # 3516 , que parece que se corrigió en # 3594 , que creo que debería estar en matplotlib 1.4.1+. También vea # 3487 . Entonces, suponiendo que $LANG y el terminal sean correctos, y su matplotlib sea ​​1.4.0 o anterior, esta es la causa más probable, y actualizarlo (a través de conda o pip o apt-get o actualizar el propio Anaconda, sin embargo, originalmente lo instaló) ) debería ser la solución.

O, por supuesto, puede actualizar a Python 3, que probablemente solucionará el problema o le dará un mejor mensaje de error que le dirá exactamente qué está mal. (Aunque, al analizar el informe del problema, parece que matplotlib 1.4.0 no tiene este error exacto en Python 3, solo Python 2, como se esperaba … pero puede tener un error relacionado …)