Я только что обновил до последней стабильной версии matplotlib
(1.5.1), и каждый раз, когда я импортирую matplotlib, я получаю это сообщение:
/usr/local/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.')
... который всегда останавливается на несколько секунд.
Является ли это ожидаемым поведением? Было ли это так же и раньше, но только без печатного сообщения?
Ответ 1
Как указано в комментарии выше, удалив файлы:
fontList.cache
fontList.py3k.cache
tex.cache
решить проблему.
В моем случае файлы находились под:
`~/.matplotlib`
отредактированы
Несколько дней назад сообщение появилось снова, я удалил файлы в упомянутых выше местах без каких-либо успехов. Я нашел, что, как предложено здесь, T Mudau, дополнительное место с текстовыми файлами кеша: ~/.cache/fontconfig
Ответ 2
Подтвержден подход Hugo для Ubuntu 14.04 LTS/matplotlib 1.5.1:
- удаленный ~/.cache/matplotlib/fontList.cache
- выполнил код, снова было выпущено предупреждение (предположение: правильно восстанавливает кеш).
- снова запущен код, больше нет предупреждений (наконец)
Ответ 3
В OSX Yosemite (версия 10.10.15) для меня работало следующее:
- удалите файлы кэша из этого каталога: ~/.cache/fontconfig (в соответствии с предложением tom)
- также удалены файлы .cache в ~/.matplotlib(согласно предложению Хьюго)
Ответ 4
Я запускал код python, используя sudo только один раз, и он разрешил предупреждение для меня.
Теперь он работает быстрее. Бег без sudo не дает никакого предупреждения.
Приветствия
Ответ 5
Я запустил код python w. sudo, и он вылечил его... я предполагал, что не было разрешения писать эту таблицу... удачи!
Ответ 6
HI вы должны найти этот файл: font_manager.py в моем случае: C:\Users\gustavo\Anaconda3\Lib\site-packages\matplotlib\font_manager.py
и FIND def win32InstalledFonts (directory = None, fontext = 'ttf') и заменить на:
def win32InstalledFonts (directory = None, fontext = 'ttf'): "" Поиск шрифтов в указанном каталоге шрифтов или использование системных каталогов, если они не указаны. Список шрифтов TrueType имена файлов возвращаются по умолчанию или AFM-шрифты, если fontext == "АФМ". ""
from six.moves import winreg
if directory is None:
directory = win32FontDirectory()
fontext = get_fontext_synonyms(fontext)
key, items = None, {}
for fontdir in MSFontDirectories:
try:
local = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, fontdir)
except OSError:
continue
if not local:
return list_fonts(directory, fontext)
try:
for j in range(winreg.QueryInfoKey(local)[1]):
try:
key, direc, any = winreg.EnumValue(local, j)
if not is_string_like(direc):
continue
if not os.path.dirname(direc):
direc = os.path.join(directory, direc)
direc = direc.split('\0', 1)[0]
if os.path.splitext(direc)[1][1:] in fontext:
items[direc] = 1
except EnvironmentError:
continue
except WindowsError:
continue
except MemoryError:
continue
return list(six.iterkeys(items))
finally:
winreg.CloseKey(local)
return None
Ответ 7
Это сработало для меня:
sudo apt-get install libfreetype6-dev libxft-dev