Skip to main content
requirements.txt ファイルは、Python プロジェクトで依存関係を指定・管理するための業界標準です。このガイドでは、開発環境と本番環境の一貫性を保つために requirements.txt を作成、設定、利用する方法を説明します。

requirements.txt ファイルとは?

requirements.txt ファイルは、プロジェクトが必要とするすべての外部 Python パッケージを、それぞれの特定のバージョンとともに記述します。これにより次のことが可能になります。
  • あなたとチームが同一の環境を維持できる
  • 新しい協力者が環境を正確に再現できる
  • Square Cloud への deploy が正しい依存関係で動作する

1

仮想環境を作成して有効化する

仮想環境の中で作業することは、プロジェクトの依存関係をグローバルな Python システムから隔離しておくために不可欠です。これによりバージョンの競合を回避し、再現性を確保できます。プロジェクトのルートに仮想環境を作成します(macOS/Linux で python が見つからない場合は python3 を使用してください)。
お使いのシステムに応じて、以下のいずれかのコマンドで有効化します。Windows:
macOS/Linux:
次に、プロジェクトで使用するパッケージをインストールします。例:
2

プロジェクトの依存関係を記述する

再現性を確保し、本番環境での非互換な更新による破損を防ぐため、常に == で正確なバージョンを指定してください。

方法 A: pip freeze で生成する(推奨)

仮想環境を有効化した状態で、インストールされているすべてのパッケージとその正確なバージョンをファイルに書き出します。
仮想環境の中では、pip freeze はその環境にインストールされたパッケージ(依存関係とそのサブ依存関係)のみを、== で固定された状態で記述します。
仮想環境の外では、pip freeze はシステムにインストールされているすべてのパッケージを記述します。ファイルを見直し、プロジェクトで使用しないものを削除してください。

方法 B: 手動で作成する

プロジェクトのルートに requirements.txt ファイルを作成し、プロジェクトで使用するパッケージをそのバージョンとともに記述します。
requirements.txt
3

依存関係を確認・検証する

テキストエディタで requirements.txt ファイルを開き、次を行います。
  1. パッケージのリストを確認する
  2. 不要な依存関係を削除する
  3. 必要に応じてバージョンを更新する
  4. 正確なバージョン(== 付き)を使っていることを確認する
4

依存関係をインストールする

記述されたすべての依存関係をインストールするには:
このコマンドは、すべての協力者と本番環境がまったく同じバージョンを使用することを保証します。
5

バージョン管理と共有

requirements.txt が準備できたら、次のことができます。
  • チームと共有する
  • バージョン管理(git)に入れる
  • 全員が同じバージョンで作業することを保証する
  • Square Cloud へのデプロイを簡素化する
プロジェクトを Square Cloud にホスティングすると、requirements.txt ファイルが自動的に検出され、アプリが起動する前に pip install -r requirements.txt で依存関係がインストールされます。

ベストプラクティスとヒント

  • 常に最新に保つ: 新しい依存関係を追加するたびに requirements.txt を定期的に見直し、更新する
  • 正確なバージョンを使う: 本番環境での予期しない問題を避けるため、>、>=、バージョン指定なしではなく、常に == を使う
  • pip freeze を確認する: pip freeze を使う場合、不要な補助パッケージが含まれることがあるため、コミット前にファイルを見直す
  • バージョン管理: 依存関係の変更を追跡するため、requirements.txt を git にコミットする
  • 隔離された環境: グローバルな競合を避けるため、プロジェクトごとに 1 つの仮想環境を維持する
  • ローカルでテストする: デプロイ前に、新しい環境で pip install -r requirements.txt を使ってファイルをテストする

次のステップ

requirements.txt ファイルの設定が完了したら:
  1. Git リポジトリにコミットします。
  2. Python ランタイムのガイドでプロジェクトをホストするか、Django、Flask、FastAPI などのフレームワークガイドに従います。
  3. プッシュのたびに GitHub から自動でデプロイします。