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
