パッケージのインストール

Page Status:Complete
Last Reviewed:2016-06-24

このセクションでは、Python パッケージ のインストール方法の基本を説明する。

重要な注意: この文脈で「パッケージ」とは、distribution (つまり、インストールされるひとかたまりのソフトウェア)の同義語であり、Python ソースコード内で import する package (モジュールコンテナ)を指すのではない。Python コミュニティでは、distribution を表すのに「パッケージ」の語を用いるのが普通だ。 “distribution” という用語はしばしば避けられる。というのは、Linux distribution だとか、あるいは Python 自身のような他のより大きなソフトウェアの distribution と混同しやすいからだ。

パッケージインストールの要件

このセクションでは、他の Python パッケージをインストールする前に行うべき手順を説明する。

pip, setuptools, wheel をインストールする

  • Python 2 の 2.7.9 以上、または Python 3 の 3.4 以上を python.org からインストールした場合、pipsetuptools は既に存在する。ただし最新版へのアップグレードが必要だ:

    Linux または OS X では:

    pip install -U pip setuptools
    

    Windows では:

    python -m pip install -U pip setuptools
    
  • Linux 上でシステムのパッケージマネージャ(“yum”, “apt-get” など…)管理下の Python 環境を使っており、システムのパッケージマネージャを使って pip のインストールとアップグレードを行いたいなら、 Linux パッケージマネージャによる pip/setuptools/whell のインストール を見よ。

  • それ以外の場合:

  • 安全な手段で get-pip.py をダウンロードする。[1]

  • python get-pip.py を実行する。[2] これは pip のインストールとアップグレードを行う。加えて、setuptoolswheel を (まだインストールされていなければ)インストールする。

    警告

    オペレーティングシステムまたはその他のパッケージマネージャ管理下の Python 環境を使っている場合は注意が必要だ。get-pip.py はそれらのツールとは協調しないので、システムが矛盾した状態になるかもしれない。

仮想環境を作る(必要なら)

詳細は 以下のセクション で述べるが、基本的なコマンドはこうだ:

virtualenv を使う場合:

pip install virtualenv
virtualenv <DIR>
source <DIR>/bin/activate

venv を使う場合: [3]

python3 -m venv <DIR>
source <DIR>/bin/activate

仮想環境の作成

Python「仮想環境」は、Python パッケージ をグローバルにではなくアプリケーション固有の隔離された場所にインストールできるようにする。

あるアプリケーションで LibFoo バージョン 1 が必要だが、別のアプリケーションではバージョン 2 が必要だとしよう。これらのアプリケーションを併用するにはどうしたらよいか?もし何もかもを /usr/lib/python2.7/site-packages (またはプラットフォーム標準の場所)にインストールしていると、アップグレードすべきでないアプリケーションを意図せずアップグレードしてしまう状況が容易に起こりうる。

より一般的な話をすると、インストールしたアプリケーションをそのままの状態に保ちたい場合はどうか?現在あるアプリケーションがうまく動いていても、それが利用するライブラリが変わったり、ライブラリのバージョンが変わったりすると、そのアプリケーションが壊れる可能性がある。

また、パッケージ をグローバルな site-package ディレクトリにインストールできない場合はどうか?共用ホストがその例だ。

仮想環境はこれら全てのケースで役立つ。仮想環境はそれ自身のインストールディレクトリを持ち、他の仮想環境とライブラリを共有しない。

現在、Python 仮想環境を作るために 2 つのツールが利用できる:

  • venv は Python 3.3 以降でデフォルトで利用できる。Python 3.4 以降では、仮想環境作成時に pipsetuptools のインストールも行う。
  • virtualenv は Python とは別にインストールする必要があるが、 Python 2.6+ と Python 3.3+ の両方をサポートする。また、仮想環境作成時に pip, setuptools, wheel が常にインストールされる(Python のバージョンによらず)。

基本的な使い方はこうだ:

virtualenv を使う場合:

virtualenv <DIR>
source <DIR>/bin/activate

venv を使う場合:

python3 -m venv <DIR>
source <DIR>/bin/activate

詳細は virtualenv, venv のドキュメントを見よ。

インストールには pip を使う

pip は推奨インストーラだ。以下では、最も一般的な使い方について説明する。詳細については、完全な リファレンスガイド を含む pip ド キュメント を見よ。

まれなケースだが、pip の代わりに easy_install を使いたくなることがあるかもしれない。詳しくは、追加トピックpip vs easy_install の解説を見よ。

PyPI からのインストール

pip の最も一般的な用途は、requirement specifier を指定して Python Package Index からのインストールを行うことだ。大まかに言うと、requirement specifier はプロジェクト名とそれに続くオプションの version specifier から成る。PEP 440 に現在サポートされる specifier の 完全な仕様 がある。以下にいくつかの例を示す。

“SomeProject” の最新バージョンをインストール:

pip install 'SomeProject'

特定のバージョンをインストール:

pip install 'SomeProject==1.4'

あるバージョン以上、あるバージョン未満のものをインストール:

pip install 'SomeProject>=1,<2'

特定のバージョンと 「互換」 なバージョンをインストール: [4]

pip install 'SomeProject~=1.4.2'

この場合、”==1.4.*” かつ “>=1.4.2” である任意のバージョンがインストールされる。

Source Distributions vs Wheels

pipSource Distributions (sdist), Wheels のいずれからのインストールも行えるが、PyPI にその両方が存在する場合、pip は互換性のある wheel を優先する。

Wheels は事前ビルドされた distribution フォーマットであり、Source Distributions (sdist) より高速にインストールできる。プロジェクトがコンパイル済み拡張を含む場合は特に速い。

インストール時に wheel が見つからない場合、pip はローカルに wheel をビルドし、それを今後のインストール用にキャッシュする。これにより、今後 source distribution をリビルドする必要がなくなる。

パッケージのアップグレード

インストール済みの SomeProject を PyPI の最新版にアップグレード:

pip install --upgrade SomeProject

ユーザディレクトリへのインストール

パッケージ を現在のユーザ専用にインストールするには、 --user フラグを使う:

pip install --user SomeProject

詳しくは、pip ドキュメントの User Installs セクションを見よ。

Requirements files

Requirements File で指定された必要なパッケージをまとめてインストール:

pip install -r requirements.txt

VCS からのインストール

VCS から “editable” モードでプロジェクトをインストールできる。構文の完全な解説は、pip の VCS Support セクションを見よ。

pip install -e git+https://git.repo/some_pkg.git#egg=SomeProject          # from git
pip install -e hg+https://hg.repo/some_pkg.git#egg=SomeProject            # from mercurial
pip install -e svn+svn://svn.repo/some_pkg/trunk/#egg=SomeProject         # from svn
pip install -e git+https://git.repo/some_pkg.git@feature#egg=SomeProject  # from a branch

PyPI 以外のインデックスからのインストール

代替インデックスからインストール:

pip install --index-url http://my.package.repo/simple/ SomeProject

インストール中に PyPI の他に追加のインデックスも検索:

pip install --extra-index-url http://my.package.repo/simple SomeProject

ローカルソースツリーからのインストール

ローカルのソースから 開発モード でインストール(プロジェクトはインストールされたように見えるが、ソースツリーから編集可能なままになる):

pip install -e <path>

ソースから通常のインストールも可能:

pip install <path>

ローカルアーカイブからのインストール

特定のローカルアーカイブファイルからインストール:

pip install ./downloads/SomeProject-1.0.4.tar.gz

アーカイブ群を含むローカルディレクトリからインストール(PyPI は無視):

pip install --no-index --find-links=file:///local/dir/ SomeProject
pip install --no-index --find-links=/local/dir/ SomeProject
pip install --no-index --find-links=relative/dir/ SomeProject

プレリリースのインストール

安定版に加え、プレリリースおよび開発版も探す(デフォルトでは、pip は安定版のみを探す):

pip install --pre SomeProject

Setuptools “Extras” のインストール

setuptools extras をインストール:

$ pip install SomePackage[PDF]
$ pip install SomePackage[PDF]==3.0
$ pip install -e .[PDF]==3.0  # editable project in current directory

[1]この文脈で「安全」とは、モダンブラウザや curl のようなツールを使い、https URL からのダウンロード時に SSL 証明書を検証することを指す。
[2]プラットフォームによっては、root または管理者権限が必要かもしれない。pip は現在、 ユーザ単位のインストールをデフォルト とする ことでこの状況を変えることを検討している。
[3]Python 3.4 から、 venv (virtualenv の標準ライブラリ版)は pip がインストールされた仮想環境を作るので、 virtualenv と同等になる。
[4]この compatible release specifier は PEP 440 で accept され、setuptools v8.0, pip v6.0 でサポートされた。