Kaggleでオフラインでパッケージをインストールする方法
Kaggleのコンペでは、インストールさせれていないパッケージを利用したい場合、インターネット環境への接続が制限されている状況でパッケージをインストール必要があります。この記事では、オフライン環境でパッケージをインストールする具体的な手順を解説します。
はじめに
コードを提出するコンペの場合、インターネット接続がOFFでないとサブミッションできないことが多いと思います(これまで参加したコンテストで、インターネット接続ONでサブできたものはなかったです)。
この時問題になるのが、「オフラインのノートブックで、パッケージをどうやってインストールするか」です。
この記事では、私が使っている手順を紹介したいと思います。
手順①: PypIを利用する
Python Package Index(PyPI)は、プログラミング言語Python用のソフトウェアのリポジトリで、パッケージを管理・配布しているサイトです。
PyPIのホームページ: https://pypi.org/
ページを開くと、以下のような画面が現れます。
ここでパッケージを検索します。例えばnumpyを検索するとnumpyを含むパッケージの一覧が表示されます。ここで、一番上のやつを選択すると(記事執筆時点ではnumpy 1.26.0
)、以下のような画面になります。
この画面で、左側のメニューから「ファイルをダウンロード」をクリックすると、ダウンロードできるファイルの一覧に移動します。whlがある場合は、適当なwhlをダウンロードし、kaggleのデータセットを作成してアップロードします。
あとは、kaggle notebookのInputにデータセットを追加して、以下のような感じでインストールできます。
!pip install /kaggle/input/データセット名/パッケージ名.whl
手順② :Kaggle notebookを利用する
PypIからダウンロードしたものをうまくインストールできない場合があります。
その場合は、こちらの手順も試しています。これまでのところ、どちらかの方法でインストールできています。
手順1:インターネット接続可能なkaggle notebookを作成
インターネット接続可能なノートブックを作成して、以下のコードを記述します
!pip install パッケージ名
!pip download -d /kaggle/working/ パッケージ名
このノートブックを実行するとoutputフォルダにインストール可能なパッケージが格納されます。
/kaggle/working/とパッケージ名の間にはスペースがあります
複数のパッケージを利用したい場合は、install/downloadを複数個書いて、必要なパッケージをまとめて1つのノートブックで準備することもできます。
ここで作成したnotebookを利用して、パッケージをインストールします。
手順2:パッケージを利用するkaggle notebook側の手順
上の手順で作成したノートブックをパッケージをインポートしたいkaggle notebookのInputに作成したnotebookをデータセットとして追加します(AddのYour notebooksを使うか、URL入力で設定)。
Inputに追加した後は、以下のようにすればパッケージをインストールできます。
!pip install /kaggle/input/データセット名/パッケージ名
利用する時のパッケージ名は、拡張子の.whlまで含めたものになります。ダウンロードされたパッケージ名を確認して、バージョンを含め指定してください。
まとめ
以上、kaggleでインターネット接続なしでパッケージを利用する方法を説明しました。
コンテストでパッケージをインストールする場合に重宝するテクニックなので覚えておいて損はないと思います。