【Python】pipでパッケージを管理する基本:requirements.txtの書き方

Python

こんにちは、かつコーチです。

「先輩が作ったプロジェクトを渡されたけど、必要なライブラリが分からない」と困った経験はありませんか。
私も新人時代、同じような場面で先輩に何度も聞き直したことがあります。
この記事では、pipの基本的な使い方と、それを解決するrequirements.txtの書き方を解説します。

pipとは?

Pythonのライブラリを管理するツール

pip(ピップ)とは、Python用のパッケージ(他の人が作った便利な機能をまとめたライブラリ)をインストールするためのツールです。
Python 3には標準で同梱されているため、別途インストールする必要はほとんどありません。
Web開発、データ分析、自動化など、Pythonの多くの機能はpipでインストールした外部ライブラリを使って実現します。

なぜrequirements.txtが必要なのか

チームで開発する際、全員が同じバージョンのライブラリを使っていないと、思わぬ不具合が起こります。
「自分のPCでは動くのに、他の人のPCでは動かない」という状態は、多くの場合ライブラリのバージョン違いが原因です。
requirements.txtは、そのプロジェクトで使うライブラリとバージョンを一覧にしたファイルです。
このファイルを共有すれば、誰でも同じ環境を簡単に再現できます。

pipの基本的な使い方

手順1:ライブラリをインストールする

仮想環境を有効化した状態で、以下のコマンドを実行します。

pip install requests

バージョンを指定してインストールすることもできます。

pip install requests==2.31.0

手順2:インストール済みのライブラリを確認する

現在の環境にインストールされているライブラリの一覧は、以下で確認できます。

pip list

手順3:requirements.txtを生成する

インストールしたライブラリの一覧を、ファイルとして書き出せます。

pip freeze > requirements.txt

pip freezeは、現在の環境にインストールされているライブラリとバージョンを一覧表示するコマンドです。
>(リダイレクト)を使うことで、その内容をファイルに保存できます。
生成されたrequirements.txtの中身は、以下のような形式です。

requests==2.31.0
pandas==2.2.2
python-dotenv==1.0.1

手順4:requirements.txtから一括インストールする

このファイルがあれば、-rオプションで一括インストールできます。

pip install -r requirements.txt

新しいPCや、新しく参加したメンバーでも、このコマンド1つで同じ環境を再現できます。

よくあるつまずきポイント:バージョン不一致エラー

Before:requirements.txtの内容でエラーが出た例

私が案件に途中参加した際、共有されたrequirements.txtをそのままインストールして、こんなエラーに遭遇しました。

ERROR: Could not find a version that satisfies the requirement pandas==1.5.0
(from versions: 2.0.0, 2.0.1, 2.1.0, 2.2.0, 2.2.2)
ERROR: No matching distribution found for pandas==1.5.0

原因を調べると、使っていたPythonのバージョンが新しすぎて、古いpandasが対応していないことが分かりました。
Pythonのバージョンと、ライブラリが対応しているバージョンの組み合わせは、意外とずれやすいポイントです。

After:Pythonのバージョンを合わせて解決

# プロジェクトが前提とするPythonバージョンを確認
cat .python-version
# => 3.10.0

# pyenvで合わせる
pyenv local 3.10.0

# 仮想環境を作り直してから再インストール
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

このように、requirements.txtだけでなく、Pythonのバージョンも合わせて共有しておくことが大切です。
プロジェクトのREADMEに、想定しているPythonのバージョンを明記しておくと、こうしたトラブルを防げます。

まとめ

この記事のポイント

  • pipはPythonのライブラリをインストール・管理するための標準ツールである
  • pip freeze > requirements.txtで、現在の環境のライブラリ一覧をファイル化できる
  • pip install -r requirements.txtで、同じ環境を誰でも再現できる
  • ライブラリのバージョンだけでなく、Pythonのバージョンも合わせて共有する

次に読むべき記事

環境構築の基本を押さえたら、次は実際にコードを書くエディタを整えましょう。
「VSCodeでPython開発環境を整える」で詳しく解説しています。

タグ: Python, 初心者向け, 環境構築

タイトルとURLをコピーしました