Ошибка декодирования Unicode Python при импорте matplotlib

Я пытаюсь использовать matplotlib в моем скрипте python, но я получил эту ошибку в терминале:

Traceback (most recent call last): File "graphique.py", line 5, in <module> import matplotlib.pyplot as plt File "/home/xavier/anaconda/lib/python2.7/site-packages/matplotlib/__init__.py", line 1048, in <module> 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) 

Вот мой код python, я просто написал

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

Что мне нужно сделать?

One Solution collect form web for “Ошибка декодирования Unicode Python при импорте matplotlib”

Проблема в том, что у вас есть не-ASCII-символ в вашем текущем рабочем каталоге.

Это фактически не должно быть проблемой вообще, но это из-за комбинации других вещей:

  • matplotlib хочет посмотреть в вашем текущем рабочем каталоге локальный файл matplotlibrc который переопределяет ваш по умолчанию.
  • Python думает, что вы используете локаль C вместо красивой локали UTF-8, которой должен соответствовать Ubuntu 14.

Итак, для быстрого временного решения просто запустите свой скрипт из другого каталога, в котором нет несимвольных символов ASCII.

Если вы действительно хотите решить проблему:

  • Убедитесь, что у вас есть последние Ubuntu 14, Anaconda и matplotlib.
  • Из оболочки, echo $LANG . Результат должен быть либо пустым, либо чем-то с UTF-8 . Если нет, выполните поиск в AskUbuntu, чтобы исправить это.
  • Убедитесь, что ваша оболочка и терминал установлены в UTF-8.

Из быстрого поиска проблем matplotlib это выглядит как # 3516 , похоже, что оно было исправлено в # 3594 , которое, я думаю, должно быть в matplotlib 1.4.1+. Также см. # 3487 . Итак, предположим, что вы правильно используете $LANG и терминал, а ваш matplotlib равен 1.4.0 или более раннему, это наиболее вероятная причина и обновление (через conda или pip или apt-get или обновление самой Anaconda, однако вы изначально ее установили ) должно быть исправлением.

Или, конечно же, вы можете перейти на Python 3, который, вероятно, либо решит проблему, либо даст вам лучшее сообщение об ошибке, которое точно скажет вам, что случилось. (Хотя, сканируя отчет о проблеме, похоже, что matplotlib 1.4.0 не имеет этой точной ошибки в Python 3, но только Python 2, как и ожидалось … но у нее может быть связанная ошибка …)

  • Python 3: Как указать stdin-кодирование
  • Идентификация нормализации: почему микро-знак преобразован в греческую букву mu?
  • UnicodeDecodeError при перенаправлении в файл
  • Преобразование CSV в YAML, с Unicode?
  • Python: решение юникодного ада с помощью unidecode
  • Лучший способ конвертировать URL-адрес Unicode в ASCII (UTF-8-escaped) в Python?
  • Как исправить эту ошибку unicode / cPickle в Python?
  • unicode (). decode ('utf-8', 'ignore'), поднимающий UnicodeEncodeError
  • Python - лучший язык программирования в мире.