パッケージのインストール¶
Page Status: | Complete |
---|---|
Last Reviewed: | 2016-06-24 |
このセクションでは、Python パッケージ のインストール方法の基本を説明する。
重要な注意: この文脈で「パッケージ」とは、distribution (つまり、インストールされるひとかたまりのソフトウェア)の同義語であり、Python ソースコード内で import する package (モジュールコンテナ)を指すのではない。Python コミュニティでは、distribution を表すのに「パッケージ」の語を用いるのが普通だ。 “distribution” という用語はしばしば避けられる。というのは、Linux distribution だとか、あるいは Python 自身のような他のより大きなソフトウェアの distribution と混同しやすいからだ。
Contents
パッケージインストールの要件¶
このセクションでは、他の Python パッケージをインストールする前に行うべき手順を説明する。
pip, setuptools, wheel をインストールする¶
Python 2 の 2.7.9 以上、または Python 3 の 3.4 以上を python.org からインストールした場合、pip と setuptools は既に存在する。ただし最新版へのアップグレードが必要だ:
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 のインストールとアップグレードを行う。加えて、setuptools と wheel を (まだインストールされていなければ)インストールする。警告
オペレーティングシステムまたはその他のパッケージマネージャ管理下の Python 環境を使っている場合は注意が必要だ。get-pip.py はそれらのツールとは協調しないので、システムが矛盾した状態になるかもしれない。
仮想環境を作る(必要なら)¶
詳細は 以下のセクション で述べるが、基本的なコマンドはこうだ:
virtualenv を使う場合:
pip install virtualenv virtualenv <DIR> source <DIR>/bin/activatepython3 -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 以降では、仮想環境作成時に pip と setuptools のインストールも行う。
- 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¶
pip は Source Distributions (sdist), Wheels のいずれからのインストールも行えるが、PyPI にその両方が存在する場合、pip は互換性のある wheel を優先する。
Wheels は事前ビルドされた distribution フォーマットであり、Source Distributions (sdist) より高速にインストールできる。プロジェクトがコンパイル済み拡張を含む場合は特に速い。
インストール時に wheel が見つからない場合、pip はローカルに wheel をビルドし、それを今後のインストール用にキャッシュする。これにより、今後 source distribution をリビルドする必要がなくなる。
ユーザディレクトリへのインストール¶
パッケージ を現在のユーザ専用にインストールするには、 --user
フラグを使う:
pip install --user SomeProject
詳しくは、pip ドキュメントの User Installs セクションを見よ。
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
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 でサポートされた。 |