データサイエンスプロジェクトの依存関係
NumPy、Pandas、scikit-learn、Jupyterを含むデータサイエンスプロジェクトのrequirements.txtを適切なバージョン制約付きでpyproject.tomlフォーマットに変換する方法。
Real-World Projects
詳細な説明
データサイエンスプロジェクトは、厳格なバージョン互換性要件を持つパッケージによる複雑な依存関係ツリーを持つことがよくあります。
データサイエンスrequirements.txt:
numpy>=1.24,<2.0
pandas>=2.0
scikit-learn>=1.3
matplotlib>=3.8
torch>=2.1 ; sys_platform != "win32"
jupyterlab>=4.0
pyproject.tomlに変換:
[project]
name = "my-ml-project"
version = "0.1.0"
requires-python = ">=3.10"
dependencies = [
"numpy>=1.24,<2.0",
"pandas>=2.0",
"scikit-learn>=1.3",
"matplotlib>=3.8",
]
[project.optional-dependencies]
gpu = [
"torch>=2.1",
]
notebook = [
"jupyterlab>=4.0",
]
データサイエンスのパッケージング考慮事項:
- NumPy 2.0の境界:多くのパッケージがNumPy 2.0のサポートに時間が必要なため、
<2.0の上限が一般的 - GPUパッケージ:PyTorchとCUDA依存関係は大きくプラットフォーム固有のため、オプショナルグループに分離されることが多い
- オプショナルグループのJupyter:ノートブックツールは開発支援であり、ランタイム依存関係ではない
pyproject.tomlフォーマットにより、コア分析ライブラリをオプションのGPUやノートブック依存関係から自然に分離でき、本番デプロイメントのインストール時間を削減できます。
ユースケース
異なるデプロイメントシナリオのためにコア、GPU、ノートブック依存関係を分離する構造化されたpyproject.tomlに、機械学習プロジェクトのフラットなrequirements.txtを変換する。