![matplotlib は libpng16.so.16: 共有オブジェクトファイルを開けません: そのようなファイルまたはディレクトリはありません と表示します](https://rvso.com/image/1157177/matplotlib%20%E3%81%AF%20libpng16.so.16%3A%20%E5%85%B1%E6%9C%89%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E9%96%8B%E3%81%91%E3%81%BE%E3%81%9B%E3%82%93%3A%20%E3%81%9D%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%20%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%BE%E3%81%99.png)
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 パスが複数ある場合は、最初のパスの後にコロンを追加し、次のパスを追加します。