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

Email:

distutils-sig@python.org

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

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

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

注釈

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

重要用語集

  • pip は推奨されるインストーラ・プログラムです。 Python 3.4 からは、 Python バイナリ・インストーラに最初から付属するようになりました。

  • 仮想環境 は、システム全体にインストールするのではなく、特定のアプリケーションで使用するためにパッケージをインストールできるようにする半独立型のPython環境です。

  • venv は仮想環境をつくるための標準ツールです。 Python 3.3 から Python の一部になりました。 Python 3.4 以降では、仮想環境をつくる際はそのすべてで pip をインストールするように、あらかじめ設定されています。

  • virtualenvvenv のサードパーティの代替案 (で前身) です。 virtualenv により仮想環境を Python 3.4 より前のバージョンで使うことが出来ます。 以前のバージョンは venv を提供していませんし、作成された環境に pip を自動的にインストールすることも出来ません。

  • Python Package Index は Python パッケージのパブリック・リポジトリです。このリポジトリのパッケージは、他の Python ユーザが利用できるように、オープンソースでライセンスされています。

  • Python Packaging Authority は、標準のパッケージングツール、関連するメタデータとファイルフォーマット標準の保守と発展を担っている、開発者・ドキュメントの著者のグループです。彼らは様々なツールやドキュメント、issue tracker を GitHub で管理しています。

  • distutils はオリジナルのビルド・配布システムで、 Python 標準ライブラリに 1998 年に最初に追加されました。 distutils の直接的な利用は段階的に取り払われていきますが、それは今でも現時点でのパッケージングと配布のインフラストラクチャの基礎として鎮座していて、標準ライブラリの一部として残っているだけでなく、その名前はほかの文脈でも生き続けています(Python のパッケージング標準の開発をまとめるのに使われているメーリングリストの名前のように)。

バージョン 3.5 で変更: 仮想環境の作成には、 venv の使用をお勧めします。

基本的な使い方

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

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

python -m pip install SomePackage

注釈

POSIX ユーザ(macOS と Linux ユーザを含みます)向けには、このガイド内の例は、 virtual environment の利用を前提にしています。

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 にあります。

仮想環境の作成は venv モジュールを通して行われます。 有効な仮想環境にインストールするには 上記のコマンドを使います。

どうすればいいの...?

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

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

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

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

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

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

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

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

Linux や macOS、その他の 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 と macOS についての wheels の公開が Python Package Index を通して出来るようになったことで、この問題についての開発者の時間の節約と、ユーザにとっては自身でビルドせずにビルド済み拡張をインストールするさらなる標準化に繋がるかもしれません。

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