Python モジュールのインストール

Email:distutils-sig@python.org

人気のあるオープンソース開発プロジェクトがそうであるように、Python には貢献者たちとユーザたちの活発なサポートコミュニティがあり、またこれらはほかの Python 開発者たちに、彼らのソフトウェアのオープンソースライセンスのもとでの利用も可能にしてくれています。

これはほかの人が既に挙げた共通の(あるいは時折極めて稀有な!)問題や、彼ら自身の解法による潜在的な貢献が共通の場所に蓄えられることによる恩恵によって、Python ユーザに共有と協調を効果的に行なうことの助けとなっています。

このガイドはこれらプロセスのうち、インストールについてをカバーします。あなた自身の Python プロジェクトを作成し、シェアするためのガイドについては distribution guide を参照してください。

注釈

あなたが企業や組織のユーザであれば、多くの組織がオープンソースソフトウェアの利用と貢献に関する彼ら独自のポリシーを持っていることに気をつけてください。Python によって提供される配布とインストールのツールを利用する際には、そのようなポリシーを考慮に入れてください。

重要用語集

  • pip は推奨のインストーラ・プログラムです。 Python 2.7.9 からは、 Python バイナリ・インストーラに最初から付属するようになりました。
  • 仮想環境 (virtual environment) とは、半ば隔離された Python 環境のことです。パッケージをシステム全体用にインストールするのではなく、特定のアプリケーションで用いるためにインストールすることを可能にします。
  • virtualenv は仮想環境をつくるためのサードパーティ製ツールで、デフォルトで全ての作成済み仮想環境に対して pip がインストールされます。
  • Python Packaging Index は Python パッケージのパブリック・リポジトリです。このリポジトリのパッケージは、他の Python ユーザが利用できるように、オープンソースでライセンスされています。
  • Python Packaging Authority は、標準のパッケージングツール、関連するメタデータとファイルフォーマット標準の保守と発展を担っている、開発者・ドキュメントの著者のグループです。彼らは様々なツールやドキュメント、issue tracker を GitHubBitBucket の両方で管理しています。
  • distutils はオリジナルのビルド・配布システムで、 Python 標準ライブラリに 1998 年に最初に追加されました。 distutils の直接的な利用は段階的に取り払われていきますが、それは今でも現時点でのパッケージングと配布のインフラストラクチャの基礎として鎮座していて、標準ライブラリの一部として残っているだけでなく、その名前はほかの文脈でも生き続けています(Python のパッケージング標準の開発をまとめるのに使われているメーリングリストの名前のように)。

基本的な使い方

パッケージングのための標準ツールはすべてコマンドラインから使われることを想定しています。

以下のコマンドは、モジュールの最新バージョンとそれが依存するモジュールを、 Python Packaging Index からインストールします。

python -m pip install SomePackage

注釈

POSIX ユーザ(Max OS X と Linux ユーザを含みます)向けには、このガイド内の例は、 virtual environment の利用を前提にしています。そのような環境を作るのに virtualenv を、 pip (pip install virtualenv) あるいはあなたのシステムのパッケージマネージャを通じて(大抵 virtualenvpython-virtualenv で呼ばれています)インストール出来ます。

Windows ユーザ向けには、このガイド内の例は、Python インストール時にシステムの PATH 環境変数が調整されていることを前提にしています。

正確なバージョンや最小のバージョンをコマンドライン上で直接指定することもできます。>< などの比較演算子など、シェルが解釈する特殊文字を使う場合、パッケージ名とバージョンを二重引用符で囲んでください:

python -m pip install SomePackage==1.0.4    # specific version
python -m pip install "SomePackage>=1.0.4"  # minimum version

通常、適合するモジュールがインストール済である場合にそれを再度 install 実行を試みても効果はありません。既に存在しているモジュールのアップグレードには、明示的にそれを要求しなければなりません:

python -m pip install --upgrade SomePackage

pip とその機能についての詳しい情報とリソースは Python Packaging User Guide にあります。

どうすればいいの…?

以下はよくある課題への簡単な回答もしくは回答へのリンクです。

… pip を 2.7.9 より前のバージョンの Python でインストールするには?

pip が Python に付属するのは 2.7.9 以降です。それ以前のバージョンでは、 "Python Packaging User Guide" の記載にしたがって pip 自体をインストールする必要があります。

… パッケージを現在のユーザ用のみにインストールするには?

python -m pip install--user オプションを付けてください。パッケージはシステムのすべてのユーザ用にではなく、現在のユーザ用のみにインストールされます。

… 科学技術計算用の Python パッケージをインストールするには?

科学技術計算用の Python パッケージの多くがバイナリモジュールに複雑に依存しており、現在のところ pip を直接使ってインストールすることは容易ではありません。現時点では pip を使ってインストールしようとするよりも、 別の手段 を用いてインストールするほうが、多くの場合簡単でしょう。

… インストールされた複数のバージョンの Python を平行して使うには?

Linux や Mac OS X その他の POSIX システムでは、バージョン番号付きの Python コマンドと -m スイッチを組み合わせて用いて、適切なバージョンの pip を実行してください。

python2   -m pip install SomePackage  # default Python 2
python2.7 -m pip install SomePackage  # specifically Python 2.7
python3   -m pip install SomePackage  # default Python 3
python3.4 -m pip install SomePackage  # specifically Python 3.4

(適切にバージョン番号が付された pip コマンドが使えることもあります)

Windows では、 Python ランチャーの py-m スイッチとの組み合わせで使ってください。

py -2   -m pip install SomePackage  # default Python 2
py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3   -m pip install SomePackage  # default Python 3
py -3.4 -m pip install SomePackage  # specifically Python 3.4

よくあるインストールに関する問題

Linux で、システムの Python 内にインストールする

Linux システムでは、 Python のインストールは典型的には linux ディストリビューションの一部に含まれています。この Python インストールへのインストールには、システムに対する root 権限が必要で、また、 pip によって期待されているものとは異なるコンポーネントにアップグレードすることで、システムのパッケージマネージャのオペレーションやシステムのほかのコンポーネントの邪魔をするかもしれません。

そのようなシステムでは、 pip でパッケージをインストールする際には仮想環境を使うか、ユーザごとのインストールを行うのが、大抵良い方法です。

Pip not installed

It is possible that pip does not get installed by default. One potential fix is:

python -m ensurepip --default-pip

There are also additional resources for installing pip.

バイナリの拡張のインストール

Python プロジェクトの多くはソースに基いた配布に強く依存しており、インストールプロセスの一環として、エンドユーザ環境でソースから拡張モジュールをコンパイルすることを期待します。

バイナリ wheel フォーマットのサポートが導入されたことで、また、少なくとも Windows と Mac OS X についての wheels の公開が Python Packaging Index を通して出来るようになったことで、この問題についての開発者の時間の節約と、ユーザにとっては自身でビルドせずにビルド済み拡張をインストールするさらなる標準化に繋がるかもしれません。

ビルド済み wheel ファイルが未だ入手出来ない scientific software インストールにおけるいくつかの解法が、ローカルにビルドすることなく他のバイナリ拡張を得る助けになるかもしれません。