requirements.txtとは?

実は、技術書展の文章が1行も書けない現実逃避と反動でこういう記事を書いてたりします。


requirements.txtは、Pythonで開発したプログラムが動くために必要なライブラリ(外部の追加機能)やそのバージョンをリストとしてまとめたファイルです。これにより、他の人があなたのプログラムを動かす際に、同じ環境を簡単に再現できます。

例えば、あるプログラムを動かすために「特定のライブラリのバージョン」が必要だったとして、その情報をrequirements.txtに記載しておくことで、誰でもその環境を自動で整えることができるというわけです。

requirements.txtの仕組み


どんな時に使うの?

  • 他の人とプロジェクトを共有する時
    誰かにプログラムを渡す際、使ったライブラリを一つ一つ口頭で説明するのは手間ですよね。requirements.txtを用意しておけば、そのファイルを渡すだけで相手の環境も自動的に同じにできます。

  • 開発環境を再現したい時
    別のパソコンやサーバーでプログラムを動かす時、同じ環境を簡単に再現できます。

他言語になりますが、RubyのGemfileを想像すれば分かりやすいかもしれません。但し、pythonのrequirements.txtは 「ヴァージョンをロック」する機能もなく、Gemfileほどは洗練されていません


使い方の手順

1.ライブラリをインストールして作成
開発中にインストールしたライブラリをまとめるには、以下のコマンドを使います。

pip freeze > requirements.txt

これを実行すると、現在の環境でインストールされているライブラリとそのバージョンが自動的にrequirements.txtに書き出されます。

flet==0.3.0 r
equests==2.28.1
numpy==1.23.2

2.ライブラリをインストール
プロジェクトを共有された場合、そのrequirements.txtから必要なライブラリを一括でインストールするには、以下のコマンドを実行します。

pip install -r requirements.txt

これで、ファイルに書かれたライブラリがすべてインストールされ、プログラムを動かす準備が整います。

バージョンの指定方法

1. 特定のバージョンを指定

  • ライブラリのバージョンを固定する場合、==を使用します。

package_name==1.0.0

例:

flet==0.3.0

2. 特定のバージョン以上を指定

  • 最低バージョンを指定し、それ以上のバージョンを許可する場合は>=を使用します。

package_name>=1.0.0

3. 特定のバージョン未満を指定

  • 特定バージョン未満を指定する場合、<を使用します。

package_name<2.0.0

4. 範囲指定

  • ある範囲内のバージョンを許可する場合は、複数の条件を組み合わせます。

package_name>=1.0.0,<2.0.0

5. 最新バージョンを指定しない場合

  • バージョンを指定しない場合、常に最新バージョンがインストールされます。

package_name

これらの方法を組み合わせることで、プロジェクトに最適なバージョン管理ができます。

いいなと思ったら応援しよう!