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

Python は人気のあるオープンソース開発プロジェクトで、貢献者やユーザー
からなる活発なコミュニティに支えられています。 コミュニティの人々も自
分のソフトウェアをオープンソースライセンスで公開し、ほかの Python 開発
者が使えるようにしています。

これにより、Python ユーザーは効果的に共有や協力を行えます。 よくある問
題 (ときには珍しい問題も！) に対してほかの人がすでに作った解決策を活用
でき、自分の解決策を共有して貢献することもできます。

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

注釈:

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


重要用語集
==========

* **pip** は推奨されるインストール用プログラムです。 Python のバイナリ
  インストーラーにはデフォルトで含まれています。

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

* "venv" は仮想環境を作成するための標準ツールです。 デフォルトでは、作
  成するすべての仮想環境に **pip** をインストールします。

* "virtualenv" は "venv" の代わりに使えるサードパーティー製のツールで
  、"venv" よりも前から存在します。

* Python Package Index (PyPI) は、ほかの Python ユーザーが使えるように
  オープンソースライセンスで提供されているパッケージの公開リポジトリで
  す。

* Python Packaging Authority は、標準のパッケージングツールと、それら
  に関連するメタデータやファイル形式の標準の維持・発展を担う開発者やド
  キュメント執筆者のグループです。 GitHub で、さまざまなツール、ドキュ
  メント、課題管理システムを管理しています。

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

参考:

  Python Packaging User Guide: Creating and using virtual environments


基本的な使い方
==============

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

次のコマンドは、モジュールの最新バージョンとその依存パッケージを PyPI
からインストールします。

   python -m pip install SomePackage

注釈:

  POSIX ユーザ(macOS と Linux ユーザを含みます)向けには、このガイド内
  の例は、 *virtual environment* の利用を前提にしています。Windows ユ
  ーザ向けには、このガイド内の例は、Python インストール時にシステムの
  PATH 環境変数が調整されていることを前提にしています。

正確なバージョンや最小のバージョンをコマンドライン上で直接指定すること
もできます。">" や "<" などの比較演算子など、シェルが解釈する特殊文字
を使う場合、パッケージ名とバージョンを二重引用符で囲んでください:

   python -m pip install SomePackage==1.0.4    # 特定のバージョン
   python -m pip install "SomePackage>=1.0.4"  # 最小バージョンを指定

通常、適合するモジュールがインストール済である場合にそれを再度 install
実行を試みても効果はありません。既に存在しているモジュールのアップグレ
ードには、明示的にそれを要求しなければなりません:

   python -m pip install --upgrade SomePackage

**pip** とその機能についての詳しい情報や資料は、Python Packaging User
Guide を参照してください。

仮想環境は "venv" モジュールを使って作成します。 有効化した仮想環境に
パッケージをインストールするには、上記のコマンドを使います。

参考:

  Python Packaging User Guide: Installing Python Distribution Packages


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

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


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

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


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

科学技術計算用の Python パッケージには、バイナリの依存関係が複雑で、現
時点では **pip** で直接インストールするのが難しいものがいくつもありま
す。 こうしたパッケージは、**pip** でインストールしようとするよりも、
別の方法 でインストールするほうが簡単な場合が多いです。

参考: Python Packaging User Guide: Installing Scientific Packages


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

Linux、macOS、その他の POSIX システムでは、バージョン番号付きの Python
コマンドに "-m" オプションを組み合わせ、対応する **pip** を実行してく
ださい。

   python3    -m pip install SomePackage  # デフォルトの Python 3
   python3.14 -m pip install SomePackage  # Python 3.14 を指定

対応するバージョン番号が付いた **pip** コマンドを使える場合もあります
。

Windows では、**py** Python ランチャーに "-m" オプションを組み合わせて
使ってください。

   py -3    -m pip install SomePackage  # デフォルトの Python 3
   py -3.14 -m pip install SomePackage  # Python 3.14 を指定


よくあるインストールに関する問題
================================


Linux で、システムの Python 内にインストールする
------------------------------------------------

Linux システムでは、通常、ディストリビューションの一部として Python が
インストールされています。 この Python にパッケージをインストールする
には、システムの root 権限が必要です。 **pip** で構成要素が予期せずア
ップグレードされると、システムのパッケージマネージャーやほかの構成要素
の動作に支障をきたす可能性があります。

このようなシステムで **pip** を使ってパッケージをインストールする場合
は、仮想環境やユーザー単位のインストールを使うほうがよいことが多いです
。


pip がインストールされていない
------------------------------

**pip** がデフォルトではインストールされない場合もあります。 解決方法
の一つとして、次のコマンドを試せます。

   python -m ensurepip --default-pip

pip のインストール に関する資料もあります。


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

かつて Python はソースコードによる配布に大きく依存していました。 エン
ドユーザーは、インストール作業の一環として拡張モジュールをソースからコ
ンパイルすることを求められていました。

バイナリの wheel 形式が導入され、PyPI を通じて wheel を公開できるよう
になったことで、この問題は減りつつあります。 ユーザーが自分でビルドす
る必要がなく、ビルド済みの拡張モジュールをインストールできる場合が増え
ているためです。

ビルド済みの wheel ファイルがまだ提供されていない 科学技術計算用ソフト
ウェア をインストールするための方法の中には、ほかのバイナリ拡張を手元
でビルドせずに入手するのに役立つものもあります。

参考: Python Packaging User Guide: Binary Extensions
