今から始めるPython その3 Site-Packagesってなに。モデュールのインストール・アンインストール
三回目になりました「今から始めるPython」です。前回までに、Python(x,y)をインストールして、同梱されるSpyderというIDEを使い始めました。
今回は、Pythonのライブラリの取り扱いについて書きます。ずっと前にPythonのパッケージ、モデュールのアンインストールというのを書きましたが、シリーズに合わせてもう少し丁寧に説明します。
モデュールとパッケージ
Pythonではライブラリはモデュールとかパッケージと呼ばれます。モデュールというのは一つのファイルで済むような小さな規模のライブラリによく使われ、大規模なライブラリはパッケージの形式を取ることがおおいです。同じフォルダに__init__.pyというファイルを置くと、パッケージ形式になるのですが、ユーザーにとっては使い方も違わないので、似たようなものです。初めは、どちらもライブラリのことだとわかれば十分です。
通常、ウィンドウズでPythonをインストールすると
C:\Python27\Lib\site-packages
というフォルダが見つかると思います。Python(x,y)でインストールしても同じです。
このsite-packagesというのが、サードパーティ製のライブラリの置き場です。ここにあるpyファイルやpydファイル、eggファイルなどがインポート可能なライブラリの本体になります。
Python(x,y)は以前は差分アップデート用のファイルも配っていたので、サポートされているすべてのライブラリを一気に最新版にアップデートできたのですが、最近は差分アップデートの配布が停止しています。ただ、個別のライブラリ用にプラグインアップデート用のファイルが配布されているので、最新版に保つにはこれをダウンロードして実行するだけです。このアップデート用ファイルは自動で古いバージョンを検出して、アンインストールしてからインストールするので、とても優秀です。
アップデート用ファイルはこちらからダウンロードできます。
Python(x,y)のプラグインインストーラーはとても優秀
その1にもちょっと書きましたが、Python(x,y)でインストールされたライブラリはSite-Packagesのプラグイン用のフォルダにuninstall.exeを置いてくれるので簡単に手動でアンインストールも出来ます。
これは当たり前のようで、意外にそうでもないのです。あえてPython(x,y)を使わないと、どういう状況かを、numpyを例にあげて説明しましょう。
numpyもそうですが、多くの有名なライブラリは中身がC言語でできているためCエクステンションライブラリと呼ばれます。なので、自分でソースコードからコンパイルしてインストールするのは結構大変な作業になり、普通は公式サイトにあるコンパイル済みのバイナリーのインストーラーを取ってくる事になります。
numpy公式サイトのインストーラーでのインストールはとっても簡単でダブルクリックして、画面の指示に従えば終わります。ただ、numpy公式サイトからのインストーラーにはuninstall.exeが含まれてないので、アンインストールが面倒なのでアップデートするときちょっと困るわけです。
基本的には手作業で、C:\Python27\Lib\site-packagesにある関連ファイルをすべて削除すれば大丈夫ですが、全部削除出来たか確認するのが手間です。numpyフォルダとnumpy-1.8.0-py2.7.egg-infoフォルダがあればこれも削除して終わりだと思いますが。。pthやeggファイルもある場合があるかもしれません。
このアップデートの問題を解決しようとpipというコマンドラインツールが作られました。これはpip install ライブラリ名というふうにやると欲しいライブラリをインストールしてくれ、pip install --upgrade ライブラリ名としてアップデート、pip uninstall ライブラリ名としてアンインストールしてくれるて大変便利なんですが、numpyの場合、pip install numpyとするとソースコードをダウンロードしてきてからこれをコンパイルしようとするので、Cコンパイラーの設定をちゃんとしていないとエラーに成ってしまうのです。
Python(x,y)がおすすめなのは、こういうコンパイルの難しいライブラリをインストールし、最新版に保つのが超簡単になるのが、最大の理由です。
PipとPyPI
Cheese StoreとかCheese Shopと呼ばれたりすることもあるthe Python Package Index略してPyPIは、Pythonライブラリのレポジトリーサイトで4000以上ものライブラリがあります。基本的にここにあるものはpipでインストールできます。PyPIに登録された名前がpip install ライブラリ名に使うライブラリ名です。Python(x,y)でサポートされていないものは出来るだけpipでインストールしましょう。そうするとアップデートやアンインストールが楽です。
もしpipがない環境の場合でも、PyPIからソースコードをダウンロードしてきて、解凍し、フォルダ内にあるsetup.pyというファイルがあるので、コンソール上からpython setup.py installとするとインストールできます。ただし、これやるとアンインストールがまた面倒いので、python setup.py build してからpython setup.py bdist_wininst としてウィンドウズのインストーラーを作ってしまうと、コントロールパネル経由でアンインストールできるようになります。
では、最後にPythonの名前の元になったコメディ、「モンティ・パイソン」のチーズショップをお送りして締めましょう。PyPIがCheese Shopと呼ばれるのもここから来ています。
うーむ、まあ面白いが、微妙。似たようなではParrotの方が面白い。
« Also Known As Umeboshi | トップページ | エイプリルフール2014 AdSenseの場合 »
「学問・資格」カテゴリの記事
- ウイルスを殺すのは簡単。人に無害でやるのが難しいの!! 二酸化塩素「こう?えい!」(2020.03.11)
- 老化はエピジェネティクスな影響が積り、スプライシングに影響を与えるのかも(2017.11.20)
- シネッセンス細胞がアツい。不老不死とハゲの治療が同時に可能か?(2017.11.18)
- 古めの論文でテキスト選択がおかしい時の対処法(2017.09.08)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
「Python」カテゴリの記事
- Noteの記事をPythonでバックアップしといた。(2021.05.05)
- JupyterLabでも好きな外部エディターを使いたい!(2018.05.02)
- ローカルエリア内のJupyterLabサーバーにLAN経由で接続する。(2018.05.02)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
- Juliaやってみよう。四日目。@timeでプロファイリング(2017.07.16)
「今から始めるPython」カテゴリの記事
- 今から始めるPython その6 numpyの基本 スライシングの続き(2014.10.03)
- 今から始めるPython その5 文字列、リスト、numpyスライシング(2014.08.02)
- 今から始めるPython その4 pylabネームスペースの解説(2014.07.26)
- 今から始めるPython その3 Site-Packagesってなに。モデュールのインストール・アンインストール(2014.03.17)
- 今から始めるPython その2 Spyderを使う(2014.03.11)