# 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 を GitHub と BitBucket の両方で管理しています。

- `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`) あるいはあなたのシステムのパッケージマネージャを通じて(大抵 `virtualenv` か `python-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 にあります。

参考

Python Packaging User Guide: Installing Python Distribution Packages

## どうすればいいの...？

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

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

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

参考

Python Packaging User Guide: Requirements for Installing Packages

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

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

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

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

参考

Python Packaging User Guide: Installing Scientific Packages

### ... インストールされた複数のバージョンの 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 がインストールされていない

`pip` がデフォルトでインストールされていないことがあります。 次のコマンドで問題の解決が見込めます:

    python -m ensurepip --default-pip

他にも pip のインストール についての資料があります。

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

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

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

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

参考

Python Packaging User Guide: Binary Extensions