Python matplotlibをアップグレードしようとしていますが、何らかの理由でアップグレードできません。
もともと私は以下を使ってmatplotlibをインストールしましたが、うまくいきました
apt-get install python-matplotlib
。ただし、デフォルトはバージョン1.1です。
その後、Webサイトから1.2ソースコードをダウンロードし、tar.gzを抽出して実行しました。
sudo python setup.py build
sudo python setup.py install
これをすべて完了したら、python2.7idleに行き、次のように入力しました。
import matplotlib
print matplotlib.__version__
>>>1.1.1
だから更新ができなかったようです。 matplotlibをバージョン1.2以降にアップデートするには?
ベストアンサー1
これは、PYTHONPATH環境変数に問題があるか、欠落している可能性があります。を使用すると、matplotlibがディレクトリプレフィックスapt-get
にインストールされます。/usr
したがって、パッケージ全体が次のようにインストールされているものが見つかります/usr/lib/python2.7/site-packages/matplotlib
。
次のコマンドを使用してこれを確認できます。dpkg -L python-matplotlib
。
matplotlibソースコードを個別にダウンロードした後、上記のコマンドを使用して直接ビルドしてインストールすると、プレフィックスにインストールされます/usr/local
。システムライブラリ(/usr
プレフィックス内)が管理dpkg
され、他の依存パッケージが破損したり、管理されていないファイルが放置されるのを恐れて、これらのファイルを上書きしたり妨げたりしたくないので、問題ありません。
今、あなたはおそらくあなたのシステムにインストールされているPythonを使っているでしょう。 (すべて?)Linuxディストリビューションにプレインストールされて提供されていますが、なぜそうではありませんか?しかし、それがインストールされている場所です/usr
。 Pythonのデフォルトモジュール検索パスは、インストールされている場所のプレフィックスに基づいて構築されます。したがって、システムPython(で構成されている--prefix=/usr
)はデフォルトでインストールされているモジュールのみを検出し、手動でインストールされた/usr/lib/python2.7
モジュールは完全に無視されます/usr/local/lib/python2.7
。
したがって、この問題を解決するためのいくつかの考えられる解決策は次のとおりです。
(これをしないでください!)
--prefix=/usr
。PYTHONPATH
含めるように編集します。/usr/local/lib/python2.7/site-packages
これは自分のコンピュータのときに実行可能なソリューションです。パッケージをrootとしてインストールし、PYTHONPATH環境変数を編集またはエクスポートします~/.bashrc
。/etc/bash.bashrc
マルチユーザーコンピュータまたはサーバーの場合、すべてのパッケージをrootユーザーが手動でアップグレードする必要があるため、これはかなり混乱します。これは常に便利ではないかもしれません。この問題はシステムパッケージマネージャに任せるのが最善です。easy_install
matplotlib(またはライブラリのインストール)ピピ)システムPythonはどこかでそれを見つけるでしょう。この場合、すでにインストールされていると文句を言うことができます(したがって、最初に削除する必要がありますapt-get
)。easy_install -m matplotlib
PyPiは通常、最新のPythonパッケージのバージョンを維持します。そこにパッケージをアップロードする必要がある場合(p * ss)理由がわかるので、これが最新のPythonパッケージを入手するための安定した方法です。
distribute
このパッケージをインストールする必要がありますapt-get
。を使用してください。ユーザーディレクトリにmatplotlib 1.2をインストールします。後でリポジトリが必要なバージョンに更新されたら、削除できます。
python setup.py install --user
後者の方法が私のお気に入りの方法です。私は最近発見しましたが、システムやユーザー固有の構成ファイルや環境変数を編集する必要はなく、システムパッケージを妨げず、ユーザーのインストールは必要sudo
ありません。
これにより、~/.local/lib/python2.7
Linuxにmatplotlibがインストールされ、~/Library/...
他のディストリビューションにもインストールできます。いずれにしても、この方法はすべてのプラットフォームでサポートされ、ユーザー固有のモジュールはシステム全体のモジュールより優先的にロードされます。
今matplotlibをお楽しみください。これは素晴らしいバッグです!
PSルートでパッケージをビルドしないでください。私はルートが所有するファイルをユーザーディレクトリに保存するのが悪い習慣だと思います。
PPS Pythonインタプリタでmatplotlib(または他のPythonモジュール)がロードされている場所を確認できます。たとえば:-
>>> import matplotlib
>>> print matplotlib.__file__
/usr/lib/python2.7/site-packages/matplotlib/__init__.pyc