【要約】(Kaggle提出のための)Offline環境でプリインストールされていないライブラリをインストールする方法 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
Kaggleのコンペティション参加者が、提出用ノートブックの制約により、外部ライブラリを導入できない問題に直面する。提出時の環境ではインターネット接続が禁止されているため、以下の課題が生じる。
- ・
!pip installを実行しても、外部リポジトリへの通信ができずエラーとなる。 - ・標準環境に含まれないライブラリ(例:
zarr)が利用できない。 - ・依存関係のあるライブラリも、自動的に解決することができない。
// Approach
開発者は、ローカル環境でターゲット環境に適合するバイナリを収集し、データセットとして持ち込む手法を採用する。
- ・ローカルPCで
pip downloadを実行する。 - ・
--platform manylinux2014_x86_64や--python-version 3.12を指定し、Kaggle環境に合わせた.whlファイルを取得する。 - ・取得したファイルをKaggleの「Dataset」としてアップロードする。
- ・ノートブックにDatasetをマウントし、
--no-indexと--find-linksを用いてオフラインインストールを行う。
// Result
この手法を導入することで、Kaggleの制約下でも任意のライブラリを安全に利用できる環境が構築される。
- ・インターネット接続が遮断された環境でも、ライブラリの導入が可能になる。
- ・プラットフォームを明示的に指定するため、環境不一致によるエラーを防止できる。
- ・依存関係を含めて一括管理できるため、確実な再現性が確保される。
Senior Engineer Insight
> 本手法は、エアギャップ環境における依存関係管理の定石である。実戦投入にあたっては、以下の観点が重要となる。
- ・プラットフォームやPythonバージョンの指定ミスは、致命的なエラーを招く。
- ・依存関係が複雑な場合、ローカルでの収集漏れに注意が必要である。
- ・手動作業を減らすため、CI/CDへの組み込みを検討すべきである。
- ・再現性を高めるための、極めて実戦的なワークフローと言える。