Невозможно использовать pyplot из-за _tkinter.TclError: неизвестное имя цвета - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть простой код:

from matplotlib import pyplot as plt
plt.plot([1,2,5])
plt.show()

Он отлично работает в ноутбуке jupyter, однако, когда я пытаюсь запустить его с помощью командной строки:

$ python3 main.py

Выдаетошибка:

_tkinter.TclError: unknown color name "[97]#282a36"

Весь трекбэк:

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    plt.plot([1,2,5])
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 2811, in plot
    return gca().plot(
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 935, in gca
    return gcf().gca(**kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 578, in gcf
    return figure()
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/pyplot.py", line 525, in figure
    **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/backend_bases.py", line 3218, in new_figure_manager
    return cls.new_figure_manager_given_figure(num, fig)
  File "/home/user/.local/lib/python3.6/site-packages/matplotlib/backends/_backend_tk.py", line 1008, in new_figure_manager_given_figure
    window = Tk.Tk(className="matplotlib")
  File "/usr/lib/python3.6/tkinter/__init__.py", line 2023, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: unknown color name "[97]#282a36"

Я уже пытался изменить бэкэнд matplotlib:

import matplotlib
matplotlib.use('pdf') # Or using other arguments matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.plot([1,2,5])
plt.show()

Это выдает мне то же сообщение об ошибке.

Я также пытался установить matplotlib с использованием pip и моего менеджера дистрибутивных пакетов, оба из которых выдавали одну и ту же ошибку.

tkinter был установлен из моих репозиториев.

Любое предложение будет полезным, я не могу найти решение по схожим вопросам.

1 Ответ

0 голосов
/ 24 ноября 2018

После прочтения этой проблемы на странице Github на matplotlib я опустошил свой .Xresources, и он исправил проблему.

Так что я заглянул немного в файл .Xresourcesи я обнаружил строку:

*background:   [97]#282a36

По какой причине matplotlib пожаловался на названный цвет: [97]#282a36:

_tkinter.TclError: unknown color name "[97]#282a36"

Удаление [97] из строкиисправил проблему.помните, что вы должны выполнить:

xrdb -merge .Xresources

Чтобы изменения произошли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...