matplotlib は libpng16.so.16: 共有オブジェクトファイルを開けません: そのようなファイルまたはディレクトリはありません と表示します

matplotlib は libpng16.so.16: 共有オブジェクトファイルを開けません: そのようなファイルまたはディレクトリはありません と表示します

matplotlib バージョン 2.0.0 をインストールしようとしています。ルート アクセス権がないため、sudo/apt-get を使用できません。matplotlib をインストールしようとすると、freetype と libpng への依存関係が表示されました。そこで、次の手順を実行しました。

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

これは完全に正常に動作しました。しかし、実行するとimport matplotlib.pyplot as plt 次のエラーが発生します。

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

答え1

ユーザーのホーム ディレクトリにインストールされたプログラムは、必要なライブラリもインストールする場合があります。プログラム ローダーにこれらのライブラリの場所を通知する方法は、環境変数 LD_LIBRARY_PATH を使用することです。

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

この行をホーム ディレクトリの隠しファイル .profile に追加して、ログインごとに設定することができます。

このような lib パスが複数ある場合は、最初のパスの後にコロンを追加し、次のパスを追加します。

関連情報