requirements.txt
GPT-4.icon
requirements.txtはPythonの公式でサポートされているファイル形式であり、デファクトスタンダードでもあります。
歴史的経緯
初期のPythonパッケージ管理
初期のPythonプロジェクトでは、パッケージの依存関係を手動で管理していました。
その後、distutilsというツールが標準ライブラリに追加され、パッケージのビルドと配布が容易になりましたが、依存関係管理は依然として手動でした。 setuptoolsとeasy_install
setuptoolsとその関連ツールであるeasy_installが登場し、依存関係管理が改善されました。
pipの登場
2008年、pipが登場し、パッケージ管理がさらに簡単になりました。
pipはパッケージのインストール、アンインストール、アップグレード、依存関係管理などをサポートしています。
requirements.txtの普及
pipはプロジェクトの依存関係をファイルにリスト化し、それをもとにインストールする機能を持っており、そのファイルがrequirements.txtです。
requirements.txtはシンプルでわかりやすく、多くのプロジェクトで利用されるようになり、デファクトスタンダードとなりました。
他の方法
setup.pyとinstall_requires
プロジェクトのメタデータや依存関係を記述するために使われます。
code:setup.py
from setuptools import setup
setup(
name='my_project',
version='0.1',
install_requires=[
'requests',
'numpy',
],
)
PipfileとPipenv
Pipfileは、より洗練された依存関係管理と仮想環境の統合を提供します。
Pipfile.lockファイルは、依存関係の正確なバージョンを記録します。
code:toml
source
verify_ssl = true
requests = "*"
numpy = "*"
pytest = "*"
Poetryは、依存関係の管理、ビルド、発行を一元管理するツールです。
code:pyproject.toml
name = "my_project"
version = "0.1.0"
description = ""
python = "^3.8"
requests = "^2.25.1"
numpy = "^1.19.5"
pytest = "^6.2.2"
`