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 パスが複数ある場合は、最初のパスの後にコロンを追加し、次のパスを追加します。