При попытке импортировать Matplotlib.pyplot, получите «UnicodeDecodeError»

При попытке запустить скрипт Python, начинающийся с

import numpy as np
import matplotlib.pyplot as plt

, я получаю следующее сообщение об ошибке:

/usr/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')
Traceback (most recent call last):
  File "/home/kurt/Documents/Python/tax_rates.py", line 2, in <module>
    import matplotlib.pyplot as plt
  File "/usr/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 29, in <module>
    import matplotlib.colorbar
  File "/usr/lib/python2.7/dist-packages/matplotlib/colorbar.py", line 34, in <module>
    import matplotlib.collections as collections
  File "/usr/lib/python2.7/dist-packages/matplotlib/collections.py", line 27, in <module>
    import matplotlib.backend_bases as backend_bases
  File "/usr/lib/python2.7/dist-packages/matplotlib/backend_bases.py", line 62, in <module>
    import matplotlib.textpath as textpath
  File "/usr/lib/python2.7/dist-packages/matplotlib/textpath.py", line 15, in <module>
    import matplotlib.font_manager as font_manager
  File "/usr/lib/python2.7/dist-packages/matplotlib/font_manager.py", line 1421, in <module>
    _rebuild()
  File "/usr/lib/python2.7/dist-packages/matplotlib/font_manager.py", line 1406, in _rebuild
    fontManager = FontManager()
  File "/usr/lib/python2.7/dist-packages/matplotlib/font_manager.py", line 1044, in __init__
    self.ttffiles = findSystemFonts(paths) + findSystemFonts()
  File "/usr/lib/python2.7/dist-packages/matplotlib/font_manager.py", line 324, in findSystemFonts
    for f in get_fontconfig_fonts(fontext):
  File "/usr/lib/python2.7/dist-packages/matplotlib/font_manager.py", line 276, in get_fontconfig_fonts
    stderr=subprocess.PIPE)
  File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1340, in _execute_child
    raise child_exception
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)

Я попытался переустановить Python и Matplotlib используя команды

sudo apt-get --reinstall install python
sudo apt-get --reinstall install python-matplotlib

, но безрезультатно. Как я могу заставить Pyplot правильно импортировать?

2
задан 18 June 2016 в 13:25

1 ответ

Спасибо за Ваши комментарии. Я попробовал предложение Jos добавления следующих строк к началу tax_rates.py:

import sys
reload(sys)
sys.setdefaultencoding('utf8')

Я был рад видеть, что сценарий теперь выполняет и производит график (см. ниже снимка экрана от редактора Atom).

enter image description here

Я приветствовал бы более 'постоянное' решение, все же.

P.S. Для Вашей ссылки, всего tax_rates.py сценарий копируется ниже.

import sys
reload(sys)
sys.setdefaultencoding('utf8')

import numpy as np
import matplotlib.pyplot as plt

# income = np.linspace(0,2e6,2001)

thresholds = np.array([0, 9725, 37650, 190150, 413350, 415050])

print(thresholds)

plt.figure()
plt.plot(thresholds,thresholds)
plt.show()
1
ответ дан 2 December 2019 в 04:56

Другие вопросы по тегам:

Похожие вопросы: