matplotlib sagt libpng16.so.16: kann gemeinsam genutzte Objektdatei nicht öffnen: Keine solche Datei oder kein solches Verzeichnis

matplotlib sagt libpng16.so.16: kann gemeinsam genutzte Objektdatei nicht öffnen: Keine solche Datei oder kein solches Verzeichnis

Ich versuche, Matplotlib Version 2.0.0 zu installieren. Ich habe keinen Root-Zugriff und kann daher sudo/apt-get nicht verwenden. Als ich versuchte, Matplotlib zu installieren, wurden Abhängigkeiten von Freetype und Libpng angezeigt. Daher habe ich die folgenden Schritte ausgeführt:

wget http://prdownloads.sourceforge.net/libpng/libpng-1.6.34.tar.gz
tar -xzf libpng-1.6.34.tar.gz 
cd libpng-1.6.34/
./configure --prefix=/home/$username$/
make
make check
make install

cd ..
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz
tar xzf freetype-2.5.3.tar.gz
cd freetype-2.5.3
./configure --prefix=/home/$username$ --without-png
make && make install
export PKG_CONFIG_PATH=/home/$username$/lib/pkgconfig

pip install matplotlib==2.0.0

Das hat einwandfrei funktioniert. Aber wenn ich import matplotlib.pyplot as plt das mache, wird der folgende Fehler ausgegeben:

ImportError: libpng16.so.16: cannot open shared object file: No such file or directory

Antwort1

Im Home-Verzeichnis eines Benutzers installierte Programme können auch einige notwendige Bibliotheken installieren. Der Programmlader kann über die Umgebungsvariable LD_LIBRARY_PATH erkennen, wo sich diese Bibliotheken befinden.

export LD_LIBRARY_PATH="/$HOME/<any other optional program directories>/lib"

Diese Zeile kann der versteckten Datei .profile im Home-Verzeichnis hinzugefügt werden, um dies für jeden Login einzurichten.

Wenn Sie mehr als einen solchen Bibliothekspfad haben, fügen Sie nach dem ersten einen Doppelpunkt hinzu und fügen Sie dann den nächsten hinzu.

verwandte Informationen