Fehlerbehebung #

Abrufen der Matplotlib-Version #

Um Ihre Matplotlib-Versionsnummer herauszufinden, importieren Sie sie und drucken Sie das __version__Attribut:

>>> import matplotlib
>>> matplotlib.__version__
'0.98.0'

matplotlibInstallationsspeicherort #

Sie können herausfinden, in welchem ​​​​Verzeichnis Matplotlib installiert ist, indem Sie es importieren und das __file__Attribut drucken:

>>> import matplotlib
>>> matplotlib.__file__
'/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/__init__.pyc'

matplotlibKonfigurations- und Cache-Verzeichnisspeicherorte #

Jeder Benutzer hat ein Matplotlib-Konfigurationsverzeichnis, das eine matplotlibrc -Datei enthalten kann. Um Ihr matplotlib/Konfigurationsverzeichnis zu finden, verwenden Sie matplotlib.get_configdir():

>>> import matplotlib as mpl
>>> mpl.get_configdir()
'/home/darren/.config/matplotlib'

Auf Unix-ähnlichen Systemen befindet sich dieses Verzeichnis im Allgemeinen in Ihrem HOMEVerzeichnis unter dem .config/Verzeichnis.

Darüber hinaus haben Benutzer ein Cache-Verzeichnis. Auf Unix-ähnlichen Systemen ist dies standardmäßig vom Konfigurationsverzeichnis getrennt. Um Ihr .cache/Verzeichnis zu finden, verwenden Sie matplotlib.get_cachedir():

>>> import matplotlib as mpl
>>> mpl.get_cachedir()
'/home/darren/.cache/matplotlib'

Unter Windows sind sowohl das Konfigurationsverzeichnis als auch das Cache-Verzeichnis identisch und befinden sich standardmäßig in Ihrem oder -Verzeichnis:Documents and SettingsUsers

>>> import matplotlib as mpl
>>> mpl.get_configdir()
'C:\\Documents and Settings\\jdhunter\\.matplotlib'
>>> mpl.get_cachedir()
'C:\\Documents and Settings\\jdhunter\\.matplotlib'

Wenn Sie ein anderes Konfigurationsverzeichnis verwenden möchten, können Sie dies tun, indem Sie den Speicherort in Ihrem angebenMPLCONFIGDIR Umgebungsvariable – siehe Umgebungsvariablen in Linux und macOS festlegen . Beachten Sie, dass MPLCONFIGDIRlegt den Speicherort sowohl des Konfigurationsverzeichnisses als auch des Cache-Verzeichnisses fest.

Hilfe bekommen #

Es gibt eine Reihe guter Ressourcen, um Hilfe bei Matplotlib zu erhalten. Es ist gut möglich, dass Ihre Frage bereits gestellt wurde:

Wenn Sie über die Suche keine Antwort auf Ihre Frage finden, geben Sie bitte in Ihrer E-Mail an die Mailingliste folgende Informationen an :

  • Ihr Betriebssystem (Linux/Unix-Benutzer: Posten Sie die Ausgabe von ).uname -a

  • Matplotlib-Version:

    python -c "import matplotlib; print(matplotlib.__version__)"
    
  • Wo Sie Matplotlib erhalten haben (z. B. die Pakete Ihrer Linux-Distribution, GitHub, PyPI oder Anaconda ).

  • Alle Anpassungen an Ihrer matplotlibrcDatei (siehe Anpassen von Matplotlib mit Stylesheets und rcParams ).

  • Wenn das Problem reproduzierbar ist, versuchen Sie bitte, ein minimales eigenständiges Python-Skript bereitzustellen, das das Problem demonstriert. Dies ist der entscheidende Schritt. Wenn Sie keinen Code posten können, den wir ausführen und Ihren Fehler reproduzieren können, sind die Chancen, Hilfe zu erhalten, erheblich geringer. Sehr oft hilft Ihnen der bloße Versuch, Ihren Code auf das kleinste Bit zu minimieren, das den Fehler erzeugt, dabei, einen Fehler in Ihrem Code zu finden, der das Problem verursacht.

  • Matplotlib bietet Debug-Informationen über die loggingBibliothek und eine Hilfsfunktion zum Festlegen der Protokollierungsebene: man kann aufrufen

    plt.set_loglevel("info")  # or "debug" for more info
    

    um diese Debugging-Informationen zu erhalten.

    Standardfunktionen aus dem loggingModul sind ebenfalls anwendbar; zB könnte man logging.basicConfig(level="DEBUG")sogar vor dem Importieren von Matplotlib aufrufen (dies ist insbesondere notwendig, um die Protokollinformationen zu erhalten, die während des Imports von Matplotlib ausgegeben werden), oder einen benutzerdefinierten Handler an den "matplotlib"-Logger anhängen. Dies kann nützlich sein, wenn Sie eine benutzerdefinierte Protokollierungskonfiguration verwenden.

Wenn Sie Matplotlib selbst kompiliert haben, geben Sie bitte auch Folgendes an:

  • alle Änderungen, die Sie an setup.pyoder vorgenommen haben setupext.py.

  • die Ausgabe von:

    rm -rf build
    python setup.py build
    

    Der Anfang der Build-Ausgabe enthält viele Details über Ihre Plattform, die für die Matplotlib-Entwickler nützlich sind, um Ihr Problem zu diagnostizieren.

  • Ihre Compiler-Version -- zB .gcc --version

Wenn Sie diese Informationen in Ihre erste E-Mail an die Mailingliste aufnehmen, sparen Sie viel Zeit.

Sie werden wahrscheinlich eine schnellere Antwort erhalten, wenn Sie an die Mailingliste schreiben, als einen Fehler im Bugtracker zu melden. Die meisten Entwickler überprüfen den Bugtracker nur regelmäßig. Wenn festgestellt wurde, dass Ihr Problem ein Fehler ist und nicht schnell behoben werden kann, werden Sie möglicherweise aufgefordert, einen Fehler im Tracker zu melden, damit das Problem nicht verloren geht.

Probleme mit neueren Git-Versionen #

Stellen Sie zunächst sicher, dass Sie einen sauberen Build und eine saubere Installation haben (siehe So entfernen Sie Matplotlib vollständig ), holen Sie sich das neueste Git-Update, installieren Sie es und führen Sie ein einfaches Testskript im Debug-Modus aus:

rm -rf /path/to/site-packages/matplotlib*
git clean -xdf
git pull
python -m pip install -v . > build.out
python -c "from pylab import *; set_loglevel('debug'); plot(); show()" > run.out

und posten Sie build.outes run.outan die Mailingliste matplotlib-devel (bitte posten Sie keine Git-Probleme an die Benutzerliste ).

Natürlich sollten Sie Ihr Problem klar beschreiben, was Sie erwarten und was Sie bekommen, aber oft hilft ein sauberer Build und eine saubere Installation. Siehe auch Hilfe erhalten .