【Kaggle】インターネットオフ要件のNotebookでリポジトリからパッケージをインストールする方法

スポンサーリンク
python Python

みなさんこんにちは!

先日このような記事を公開しましたが、私の場合はオフにしただけでは提出できませんでした。

なぜなら使用しているパッケージのインストールにインターネット接続が必要だったからです。

故に私のNotebookは途中で停止してしまったため、正常にsubmitすることができませんでした。

かといってインターネットに接続することはできません。

 

そんな時はどうしたらいいのか、まとめてみました。

インターネットオフのNotebookでパッケージをインストールして動作するNotebookを用意する3ステップ

インターネットからダウンロードする必要があるパッケージは、先にダウンロードしておくことができます。

それらをNotebookにDatasetとして添付することにより、ダウンロードしたファイルからパッケージのインストールをインターネットに接続することなく行うことができます。

ですので、

  1. パッケージをダウンロード
  2. ダウンロードしたパッケージをNotebookにDatasetとして添える
  3. 添えたダウンロード済みパッケージのインストールを行う実行文を記述する

というステップを踏む必要があります。

1. パッケージをダウンロード

パッケージをダウンロードするには、

!pip download package-name # package-nameはインストールしたいパッケージ名に適宜変更

というコマンドを発行する必要があります。

このコマンドを実行することにより、インストールに必要なファイルを事前に手元に用意することができます。

どの場所に保存されたかはNotebookのサブウィンドウの「Data」セクションから把握しておきましょう。

把握したら、これらをダウンロードします。

で把握したファイルの右にカーソルを持っていくと「More actions」と表示されるのでそれをクリックします。

をクリックすると「Download」と表示されるのでダウンロードしましょう。

2. ダウンロードしたパッケージをNotebookにDatasetとして添える

ダウンロードしたパッケージを「+ add Data」からDatasetとしてNotebookに添付することにより、提出時にそのパッケージファイルを含めて提出することができます。

をクリックするとPopupが表示されるので「Upload」をクリックします。

すると「Create a New Dataset」と表示されるので、適当な名前を入力先ほどダウンロードしたファイルを一式アップロードして「Create」をクリックし作成します。

うまくいくとこのように表示されます。

また改めて「+ Add data」をクリックします。

今度はUploadではなく「Your Datasets」をクリックします。

すると、先ほど作成したDatasetが表示されるはずです。(例:textstat)
その追加したいDatasetのAddをクリックしましょう。

正常に追加されれば、input/以下にDatasetが追加されます。(例ではtextstatが追加された)

これでNotebookへの添付は完了です。

3. 添えたダウンロード済みパッケージのインストールを行う実行文を記述する

添付したダウンロード済みパッケージからライブラリをインストールする実行文を用意します。

右ウィンドウの「Data」セッションに表示されている、追加したDatasetのファイル名の右にあるアイコン「Copy file path」をクリックしてパスをクリップボードに取得します。

ダウンロードしたパッケージを指定してオフラインでパッケージをインストールするには

!python -m pip install --no-index --find-links=⑮でコピーしたpath package-name

というコマンドを発行します。

 

これでほとんど準備が整いました!

最後に、ダウンロードに使ったpipコマンドを削除し、その代わりに差し込んだコマンドからインターネット接続をオフにしてオフラインでDatasetからパッケージがインストールされること、Notebookのその後の処理が最後まで正常に実行されることを確認しましょう。

あとはSave Versionボタンからバージョンを保存し、サブミットするだけです!

まとめ

なかなか長い手順になりましたが、どうでしたでしょうか。

一度覚えてしまえばなんてことはないですね!

参考になればと思います。

それでは、Kaggle頑張りましょう!

コメント

タイトルとURLをコピーしました