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'
matplotlib
Installationsspeicherort #
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'
matplotlib
Konfigurations- 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
HOME
Verzeichnis 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 Settings
Users
>>> 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
MPLCONFIGDIR
legt 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:
Das Mailinglisten-Archiv .
Stackoverflow-Fragen mit dem Tag matplotlib .
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
matplotlibrc
Datei (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
logging
Bibliothek und eine Hilfsfunktion zum Festlegen der Protokollierungsebene: man kann aufrufenplt.set_loglevel("info") # or "debug" for more info
um diese Debugging-Informationen zu erhalten.
Standardfunktionen aus dem
logging
Modul sind ebenfalls anwendbar; zB könnte manlogging.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.py
oder vorgenommen habensetupext.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.out
es run.out
an 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 .