こんにちは、デジタルボーイです。今回は、インターネット接続なしで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でしたが、同様のやり方で他のパッケージもインストール可能です。ただし、依存関係がある場合は注意してください!