Есть два решения для этого.
Первое решение любезно указано @ImportanceOfBeingErnest и заключается в переключении бэкэндов. Решение указано в этой теме
Как указал @ImportanceOfBeingErnest, второе решение менее идеально, поскольку оно предполагает изменение исходного кода. Но если по каким-либо причинам первый метод не работает, не стесняйтесь попробовать второй.
Второе решение:
Когда я запустил matplotlib.get_backend (), он вернул: «TkAgg», поэтому я был озадачен, почему он все еще не работает. Оказывается, он вернул TkAgg, потому что я сделал что-то подобное в терминале:
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
import matplotlib
matplotlib.get_backend()
Но с линией
from pycocotools.coco import COCO
С терминала:
This call to matplotlib.use() has no effect because the backend has already
been chosen; matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.
В файле cocoapi / PythonAPI / pycocotools / coco.py третья строка импорта была:
import matplotlib; matplotlib.use('Agg')
Измените это на:
import matplotlib; matplotlib.use('TkAgg')
и все должно быть хорошо.