Python

【Python】「requirements.txt」ってよく聞くけど何だ?

takahide

おはようございます。タカヒデです。

Pythonで開発していると、「requirements.txt」ってよく目にするんですよね。

非エンジニアの私が目にするんだから実際に仕事でPython使っている人はめちゃくちゃよく見るキーワードではないでしょうか。

実際に「requirements」という言葉を調べてみると、「要件」とか「必要条件」って出てきます。
「まあ、このプロジェクトに必要な要件がまとまっているファイルか」
ってな感じで理解していたのですが、明確なものにするために調べていきたいと思います。

というわけで本日は、「requirements.txt」を紹介します。

こんな人にオススメ
  • 「requirements.txt」が何かわからない
  • Pythonでライブラリ一覧をまとめたい

「requirements.txt」とは?

最初に結論、「requirements.txt」とは、 「このプロジェクトを動かすのに必要なPythonライブラリを一覧にしたファイル」のことです。

つまりは、

  • どのライブラリが必要か
  • どのバージョンを使うか

これらが明示されたもののこと。

ふむ。「このプロジェクトに必要な要件がまとまっているファイル」でもあながち間違っていなさそうですね。

具体的には、こんなことが書かれています。

requests==2.32.3
pillow>=10.0.0
  • 「requests」を「2.32.3」のバージョンでインストールする
  • 「pillow」を「10.0.0」以上のバージョンでインストールする

うん、まあなるほどなーって感じですね。

なぜ「requirements.txt」が必要なのか?

では、もう少し深堀して、なぜ「requirements.txt」が必要なのかを見ていきましょう。
感の良いあなたならお分かりですね。

それは、「別PC・別環境でも、同じ環境を再現するため」です。

複数人でのプロジェクトやGitHubにコードを公開するときなど、他の人がこのコードを利用することがあります。

その際に、環境が分からなければ実行することはできません。

そんなことが起きないように、この「requirements.txt」は必要なわけですね。

「requirements.txt」はどうやって作る?

では、「requirements.txt」はどうやって作ればよいのでしょうか?

私は「venv」の仮想環境を利用しているので手順を無駄に記載していますが、ご自身の仮想環境内で③の手順を実施すればよいと思います。

①プロジェクトに移動

cd ~/projects/test

まずはプロジェクトのディレクトリに移動します。

②venvを有効化

source .venv/bin/activate

venvなどの仮想環境を有効化します。

③「requirements.txt」を作成しライブラリ一覧を書き出す

pip freeze > requirements.txt

「requirements.txt」を作成します。
もはやここだけ知っておけばいいと思います。

④venv解除

deactivate

仮想環境を解除します。
以上で作成は終了です。

補足:「requirements.txt」のライブラリインストール

pip install -r requirements.txt

ちなみに、利用する側として、「requirements.txt」に記載されたライブラリをインストールするには、このコマンドを実行してください。

これで別環境でも再現することができます。

補足:他言語では何を使ってライブラリ管理するの?

これでPythonだったら「requirements.txt」でライブラリを管理していることは分かりました。

が、他言語だったらどうなんでしょう?
同じく「requirements.txt」をつかうの?

そんな疑問が出てきたので、多言語のライブラリ管理をまとめてみました。

言語ファイル
Pythonrequirements.txt
JavaScript (Node.js)package.json
TypeScriptpackage.json
Javapom.xml
PHPcomposer.json
RubyGemfile
Gogo.mod
RustCargo.toml
C#.csproj
SwiftPackage.swift
Kotlinbuild.gradle.kts

他言語を学ぶ際にはぜひ覚えておくと良いかもしれませんね。

まとめ

以上が、「requirements.txt」についての解説でした。

まとめ
  • 「requirements.txt」とは、必要なPythonライブラリを一覧にしたファイル
  • 別PC・別環境でも、同じ環境を再現するために必要なモノ

ぜひ「requirements.txt」を見つけた際にはファイルの中身を確認してみてはいかがでしょうか。

お疲れさまでした。

ABOUT ME
タカヒデ
タカヒデ
ITを楽しく勉強中
通信会社の企画職で働く30代 非エンジニアでありながら半分趣味でITエンジニアリングやプログラミングを学習中 IT初心者が楽しいと思えるように発信することを目指しています ↓Xもやっているのでフォローしてね
記事URLをコピーしました