ローカルにダウンロードしたパッケージをpipでinstallする

こんにちは、デジタルボーイです。今回は、インターネット接続なしでPythonパッケージをインストールする方法について解説します。

記事を書いた人

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

お時間のない人のための、結論!!

まず、PyPIからパッケージファイル(.whlまたは.tar.gz)をダウンロード

次に、ダウンロードしたファイルを–no-indexオプションを使ってインストール

% pip install --no-index --find-links=./downloads numpy
目次

環境設定

  • OS: macOS
  • Python: 3.11.0

手順1: 必要なファイルをダウンロードする

今回は例として、numpyパッケージのインストール手順を説明します。まず、PyPIのウェブサイトからnumpyとその依存パッケージをダウンロードします。

まず、公式サイトへアクセスします。次の様なトップページがでるので、検索ボックスから、パッケージ名を記入し、検索します。

次に、次のようなページに映ります。

対象パッケージの対象バージョンのページをクリックします。

次のような画面に移ります。「ファイルをダウンロード」をクリックします。

次の様な画面に移ります。自分のOSにあった.whlファイル(Wheel)または.tar.gz(ソース)ファイルをダウンロードしましょう。

これで、必要なパッケージをローカルに保存できました。

ちなみに、「.whlファイル」はビルド済みパッケージで、「.tar.gzファイル」はソースコードです。可能な限り.whlファイルを使用することをお勧めします。

手順2: ローカルファイルからインストール

ダウンロードしたファイルをインストールするには、以下のコマンドを使用します

% pip install --no-index --find-links=./downloads numpy

このコマンドで使用するオプションの説明:

  • --no-index: PyPIからのダウンロードを無効化
  • --find-links=パス: パッケージを探すフォルダを指定

手順3: インストール済みパッケージの確認

インストールが成功したかどうかを確認するには以下のようにpip show numpyでOKです。

% pip show numpy

番外編: 依存関係には注意が必要!

パッケージをオフラインでインストールする際は、依存関係には注意が必要です。例えば、pandasはnumpyに依存しており、通常pipでpandasをインストールすると、自動的にnumpyもインストールされますが、ローカルパッケージで、インストールする場合は、依存関係は一緒にインストールされません。

以下の手順で依存関係を調べることをお勧めします。

依存関係を確認する

依存関係を出力するpipdeptreeをインストールする

% pip install pipdeptree

オンライン環境で依存パッケージを確認

% python -m pipdeptree -p pandas

次の様に依存関係が出力される

% python -m pipdeptree -p pandas
------------------------------------------------------------------------
pandas==2.1.2
├── numpy [required: >=1.23.2,<2, installed: 1.26.4]
├── python-dateutil [required: >=2.8.2, installed: 2.8.2]
│   └── six [required: >=1.5, installed: 1.16.0]
├── pytz [required: >=2020.1, installed: 2023.3.post1]
└── tzdata [required: >=2022.1, installed: 2023.3]

pandasは、それぞれ、以下に依存している。

  • numpy
  • python-dateutil
  • pytz
  • tzdata

先に依存されている上の4つのパッケージをインストールし、pandasをインストールする。(バージョンも生合成を合わせること)

バージョンを指定したインストールの方法については、こちらに記事を書いています。

まとめ

以上、ローカルファイルのpip install手順でした。今回はnumpyでしたが、同様のやり方で他のパッケージもインストール可能です。ただし、依存関係がある場合は注意してください!

目次