pip installのバージョン指定方法

こんにちは、デジタルボーイです。備忘録がてら、Python のパッケージをpip installでインストールする際の、特定のバージョンの指定方法について、説明しておきます。

僕の環境

  • マシン:MacBook Pro
  • os : macOS Sonoma 14.6.1
  • Python環境: Python 3.11.0
記事を書いた人

デジタルボーイです。
データサイエンス歴20年以上のおっさんです。中小企業診断士として、データサイエンス、WEBマーケティング、SEOに関するデータ分析、コンサルティングの仕事をしています。自己紹介の詳細はコチラ

目次

Python パッケージのバージョン指定方法:pip installの使い方を詳しく解説

バージョン指定をしない場合

まず、特にバージョンを指定せずにパッケージをインストールする方法です。例えば、numpyをインストールする場合は、ターミナルで、以下のようにします。

pip install numpy

もしくは

python3 -m pip install numpy

※pipの作法としてpython3 -mを省略した、pip install numpyでもインストール可能です。ただし、python3 -m pip ~と入力する方が推奨されています。本記事では、両方の記載を併記することとします。

このコマンドでは、PyPI(Python Package Index)というpythonパッケージを管理しているところにある最新の安定バージョンが自動的にインストールされます。

特定のバージョンを指定する

pipでパッケージをインストールする際、特定のバージョンを指定してインストールしたい場合、以下のようにバージョン番号を明示します。

pip install numpy==1.21.0

もしくは

python3 -m pip install numpy==1.21.0

この場合、numpy のバージョン 1.21.0 がインストールされます。特定のバージョンを指定することで、開発プロジェクトから、本番移行する際など、その環境におけるパッケージ同士の依存関係をきっちりと再現し、余計なミスをなくせることができますね!

バージョン範囲を指定する

まあ、あまり使わないとは思いますが、pipではバージョンを特定の範囲で指定し、パッケージをインストールすることもできます。

pip install 'numpy>=1.19.0,<1.20'

もしくは

python3 -m pip install 'numpy>=1.19.0,<1.20'

この例では、1.19以上、1.20未満のバージョンにおいて、その中の最新バージョンがインストールされるようです。例えば、あるバージョンで破壊的変更があるようなメジャーバージョンアップをしたような場合は、そのバージョンより下の範囲で最新バージョンをインストールする。。。などに使えます。

ちなみに、そのような用途の場合は、以下のように書く方が、わかりやすいですね。

pip install 'numpy<1.20'

もしくは

python3 -m pip install 'numpy<1.20'

利用可能なバージョンを確認する方法

また、どのバージョンが存在するかを確認したい場合は、次のようにpip を指定します。

pip index versions numpy

もしくは

python3 -m pip index versions numpy

僕の環境での、結果は次のとおりです。

WARNING: pip index is currently an experimental command. It may be removed/changed in a future release without prior warning.
numpy (2.1.2)
Available versions: 2.1.2, 2.1.1, 2.1.0, 2.0.2, 2.0.1, 2.0.0, 1.26.4, 1.26.3, 1.26.2, 1.26.1, 1.26.0, 1.25.2, 1.25.1, 1.25.0, 1.24.4, 1.24.3, 1.24.2, 1.24.1, 1.24.0, 1.23.5, 1.23.4, 1.23.3, 1.23.2, 1.23.1, 1.23.0, 1.22.4, 1.22.3, 1.22.2, 1.22.1, 1.22.0, 1.21.1, 1.21.0, 1.20.3, 1.20.2, 1.20.1, 1.20.0, 1.19.5, 1.19.4, 1.19.3, 1.19.2, 1.19.1, 1.19.0, 1.18.5, 1.18.4, 1.18.3, 1.18.2, 1.18.1, 1.18.0, 1.17.5, 1.17.4, 1.17.3, 1.17.2, 1.17.1, 1.17.0, 1.16.6, 1.16.5, 1.16.4, 1.16.3, 1.16.2, 1.16.1, 1.16.0, 1.15.4, 1.15.3, 1.15.2, 1.15.1, 1.15.0, 1.14.6, 1.14.5, 1.14.4, 1.14.3, 1.14.2, 1.14.1, 1.14.0, 1.13.3, 1.13.1, 1.13.0, 1.12.1, 1.12.0, 1.11.3, 1.11.2, 1.11.1, 1.11.0, 1.10.4, 1.10.2, 1.10.1, 1.10.0.post2, 1.9.3, 1.9.2, 1.9.1, 1.9.0, 1.8.2, 1.8.1, 1.8.0, 1.7.2, 1.7.1, 1.7.0, 1.6.2, 1.6.1, 1.6.0, 1.5.1, 1.5.0, 1.4.1, 1.3.0
  INSTALLED: 1.25.2
  LATEST:    2.1.2

出力の1行目にWARNINGが出ており、「このコマンドは完全に安定しているとは限りません。 将来のpipのバージョンで、予告なく変更されたり削除されたりする可能性があります。 開発者はこのコマンドの使用に注意を促しています。」と記されています。indexというコマンドが新しく実験的に追加されているということが抱えれています。まあ、使える内は無視していいでしょう。

もちろん、PyPIで直接確認することも可能です。サイトにパッケージ名を入力すると、最新情報が確認できます。

まとめ

プロジェクトでは、パッケージ間の依存関係をきっちり管理することがとても重要です。そのような場合、ぜひ、今回ご紹介した方法で、バージョン指定をやってみてください。

目次