【Python】「requirements.txt」ってよく聞くけど何だ?
おはようございます。タカヒデです。
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/activatevenvなどの仮想環境を有効化します。
③「requirements.txt」を作成しライブラリ一覧を書き出す
pip freeze > requirements.txt「requirements.txt」を作成します。
もはやここだけ知っておけばいいと思います。
④venv解除
deactivate仮想環境を解除します。
以上で作成は終了です。
補足:「requirements.txt」のライブラリインストール
pip install -r requirements.txtちなみに、利用する側として、「requirements.txt」に記載されたライブラリをインストールするには、このコマンドを実行してください。
これで別環境でも再現することができます。
補足:他言語では何を使ってライブラリ管理するの?
これでPythonだったら「requirements.txt」でライブラリを管理していることは分かりました。
が、他言語だったらどうなんでしょう?
同じく「requirements.txt」をつかうの?
そんな疑問が出てきたので、多言語のライブラリ管理をまとめてみました。
| 言語 | ファイル |
|---|---|
| Python | requirements.txt |
| JavaScript (Node.js) | package.json |
| TypeScript | package.json |
| Java | pom.xml |
| PHP | composer.json |
| Ruby | Gemfile |
| Go | go.mod |
| Rust | Cargo.toml |
| C# | .csproj |
| Swift | Package.swift |
| Kotlin | build.gradle.kts |
他言語を学ぶ際にはぜひ覚えておくと良いかもしれませんね。
まとめ
以上が、「requirements.txt」についての解説でした。
- 「requirements.txt」とは、必要なPythonライブラリを一覧にしたファイル
- 別PC・別環境でも、同じ環境を再現するために必要なモノ
ぜひ「requirements.txt」を見つけた際にはファイルの中身を確認してみてはいかがでしょうか。
お疲れさまでした。
