Soru Matplotlib içe aktarılırken zaman alıyor


En yeni kararlı sürümüne geçtim matplotlib (1.5.1) ve matplotlib'i her ithal ettiğimde bu mesajı alırım:

/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.')

... her zaman birkaç saniyeliğine durur.

Beklenen davranış bu mu? Daha önce de aynıydı, ama basılı mesaj olmadan mı?


92
2018-01-13 15:54


Menşei


ilgili: github.com/matplotlib/matplotlib/pull/5640. Öneri içeriği silmek için var ~/.cache/matplotlib ve yeniden dene. Bir izin sorunu olabilir - Her seferinde bu önbelleği oluşturmamalı - tom
En son yorumları okumamıştım. Teşekkürler! - Ricky Robinson
Bu benim için çalıştı. Ubuntu 14.04.2'de python 2.7 ile tüm dosyaları ~ / .cache / matplotlib /. İlk başta işe yaramadığını düşündüm çünkü daha sonra uyarı aldım. Ancak önbellek dosyaları yeniden oluşturulduktan sonra uyarı kayboldu. :) - Nancy Poekert
Bir mod_wsgi + apache httpd + centos kombinasyonunda - tarayıcıdan bir istek gönderildiğinde, httpd sadece yazı tipi önbelleği oluşturulmasını bekler .... 6 dakikadan fazla bekler ve devam eder .... ve asla tamamlanmaz yazı tipi güncellemesi. Bunu nasıl çözeceğinizi önerebilir misiniz? Teşekkürler - Vinodh


Cevaplar:


Tom'un yukarıdaki yorumda önerdiği gibi, dosyaları silme:

fontList.cache
fontList.py3k.cache 
tex.cache 

problemi çöz. Benim durumumda dosyalar altındaydı:

`~/.matplotlib`

DÜZENLENMİŞ

Birkaç gün önce mesaj tekrar belirdi, dosyaları yukarıda belirtilen yerlerden herhangi bir başarı olmadan sildim. Önerilen şekilde buldum İşte tarafından T Mudau Metin önbellek dosyaları ile ekstra bir yer var: ~/.cache/fontconfig


110
2018-01-25 18:33



OSX El Capitan'dayım ve bu sorunu çözmüyor. Düşüncesi olan var mı? - mar tin
El Capitan'da da ~ / .cache / fontList veya benzeri kaldırmak zorunda kaldı. - peanut_butter
mpl.get_cachedir() önbellek konumunu gösterecek docs - Lenna
OS X El Capitan'dayım ve bu sorunu çözüyor. - nos
Bu dosyaları sildikten sonra yine de bir kez daha uyarırsınız - bir dahaki sefere matplotlib'i içe aktarırsınız. Bundan sonra sen ayarlandın. - ohruunuruus


Doğrulanmış Hugo'nun yaklaşımı Ubuntu 14.04 LTS / matplotlib 1.5.1 için çalışır:

  • silindi ~ / .cache / matplotlib / fontList.cache
  • kodu çalıştırdı, yine uyarı verildi (varsayım: önbelleği doğru bir şekilde yeniden oluşturuyor)
  • kodu tekrar çalıştırdı, daha fazla uyarı (son olarak)

22
2017-08-08 12:52





OSX Yosemite'de (sürüm 10.10.15), aşağıdakiler benim için çalıştı:

  • önbellek dosyalarını da bu dizinden kaldırın: ~ / .cache / fontconfig (tom’un önerisi doğrultusunda)
    rm -rvf ~/.cache/fontconfig/* 
  • ayrıca .cache dosyalarını ~ / .matplotlib'de (Hugo'nun önerisine göre) kaldırdı.
    rm -rvf ~/.matplotlib/*

10
2018-02-14 21:24



Bunu yaptım ve şimdi hiç çalışmıyor - O.rka
Benim için MacOS X El Kaptan'da çalıştım. Diğer kütüphaneleri de daha hızlı yüklediği izlenimine sahibim. - SeF
Bu benim için 10.11.6 MacOS üzerinde çalıştı! - allardbrain
macOS 10.12 üzerinde çalıştı. 2. yükte, artık mesajı almayın. - Demis


Sadece bir kez sudo kullanarak python kodunu çalıştırdım ve uyarımı benim için çözdü. Şimdi daha hızlı çalışır. Sudo olmadan koşmak hiç bir uyarı vermez.

Şerefe


8
2018-04-16 16:43



Yığın Taşması'na Hoş Geldiniz! Bu teorik olarak soruyu cevaplayabilirken, tercih edilirdi Burada cevabın önemli kısımlarını dahil etmek ve referans için bağlantıyı sağlamak. - Enamul Hassan
Mac OSX El Capitan'da Jupyter dizüstü bilgisayar çalıştırıyorum. Koştum sudo jupyter notebook sonra import matplotlib.pyplot bir defterde ve benim sorunumu çözdü. - kungphil
Aylardır bununla uğraştım ve bunu çözdüm! OS 10.9.5'deyim. - Tactopoda
Kabul edilmiş bir cevaba göz atabilirseniz, yaptığınız her şeyin kullanıcıyı değiştirerek sorunu çözdüğünüzü ve kök ana dizinde sorunlu bir ~ / .matplotlib bulunmadığından emin olursunuz. - Rsh
@Rsh Hayır, kök izinlerini kullanmak için söylenen cevaplar, root olarak bir kez çalıştırıldığını söyler, böylece sıradan bir kullanıcı olarak çalıştırırsanız önbelleği yeniden oluşturmaz. Her neyse, bu benim için işe yaramadı. - sudo


Python kodunu çalıştırdım. sudo ve bunu iyileştirdi ... tahminimce o tabloyu yazmak için izin yoktu ... iyi şanslar!


2
2018-02-14 22:49





HI bu dosyayı bulmalısınız: case_manager.py benim durumumda: C: \ Users \ gustavo \ Anaconda3 \ Lib \ site-packages \ matplotlib \ font_manager.py

ve FIND def win32InstalledFonts (dizin = Yok, fontext = 'ttf') ve ile değiştirin:

def win32InstalledFonts (dizin = Yok, fontext = 'ttf'):     """     Belirtilen font dizinindeki yazı tiplerini arayın veya     hiç verilmediyse sistem dizinleri. TrueType yazı tipinin bir listesi     dosya adları varsayılan olarak döndürülür veya AFM yazı tipleri fontext ==     'Afm'.     """

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

0
2018-06-05 22:11





Bu Ubuntu'da benim için çalıştı 16.04 LST ile Python 3.5.2 | Anaconda 4.2.0 (64-bit). İçindeki tüm dosyaları sildim ~/.cache/matplotlib/.

sudo rm -r fontList.py3k.cache tex.cache 

İlk başta işe yaramayacağını düşündüm, çünkü daha sonra uyarı aldım. Ancak önbellek dosyaları yeniden oluşturulduktan sonra uyarı kayboldu. Yani, dosyanızı kapatın ve tekrar açın (tekrar açın), hiçbir uyarısı yoktur.


0
2018-06-12 07:50





Bu benim için çalıştı:

sudo apt-get install libfreetype6-dev libxft-dev

-1
2018-06-29 12:28