> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# requirements.txt ファイルの作成方法

> Python の requirements.txt ファイルの完全ガイド: 作成方法、pip freeze を使った依存関係の記述、バージョンの固定、プロジェクトを本番環境向けに準備する方法を学びます。

# 📋 Python 向けの requirements.txt ファイル

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

## requirements.txt ファイルとは？

`requirements.txt` ファイルは、プロジェクトが必要とするすべての外部 Python パッケージを、それぞれの特定のバージョンとともに記述します。これにより次のことが可能になります。

* あなたとチームが同一の環境を維持できる
* 新しい協力者が環境を正確に再現できる
* Square Cloud への deploy が正しい依存関係で動作する

***

<Steps>
  <Step title="仮想環境を有効化する">
    仮想環境の中で作業することは、プロジェクトの依存関係をグローバルな Python システムから隔離しておくために不可欠です。これによりバージョンの競合を回避し、再現性を確保できます。

    お使いのシステムに応じて、以下のいずれかのコマンドで仮想環境を有効化します。

    **Windows:**

    ```bash theme={null}
    venv\Scripts\activate
    ```

    **macOS/Linux:**

    ```bash theme={null}
    source venv/bin/activate
    ```
  </Step>

  <Step title="プロジェクトの依存関係を記述する">
    <Warning>
      再現性を確保し、本番環境での非互換な更新による破損を防ぐため、常に `==` で正確なバージョンを指定してください。
    </Warning>

    ### 方法 A: 手動で作成する（推奨）

    プロジェクトのルートに `requirements.txt` ファイルを作成し、すべての外部パッケージをそのバージョンとともに記述します。

    ```plaintext requirements.txt theme={null}
    discord.py==2.3.0
    requests==2.31.0
    python-dotenv==1.0.0
    ```

    ### 方法 B: pip freeze で自動生成する

    仮想環境に依存関係をインストールした後、ファイルを自動生成できます。主な方法は 2 つあります。

    **方法 B1: `pip freeze` を使う（すべてを含む）**

    ```bash theme={null}
    pip freeze > requirements.txt
    ```

    <Warning>
      注意: `pip freeze` はグローバルにインストールされたすべてのパッケージを含みます。これにはプロジェクトに不要なパッケージが含まれる場合があります。生成後にファイルを見直し、厳密には必要でない依存関係を削除してください。
    </Warning>

    **方法 B2: `pipdeptree` またはフィルタリング付きの `pip freeze` を使う（推奨）**

    プロジェクトの依存関係「のみ」を（補助的な環境パッケージを含めずに）取得するには、次を使用します。

    ```bash theme={null}
    pip freeze --user > requirements.txt
    ```

    または、よりクリーンな方法として `pipdeptree` をインストールします。

    ```bash theme={null}
    pip install pipdeptree
    pipdeptree -p your_project > requirements.txt
    ```

    代替手段: 手動でリストを確認するか、プロジェクト専用にインストールされたパッケージを確認します。

    ```bash theme={null}
    pip list | grep -i "your-package"
    ```

    <Note>
      仮想環境（推奨）で作業している場合、環境が隔離されておりプロジェクトの依存関係のみを含むため、`pip freeze` は完璧に機能します。
    </Note>
  </Step>

  <Step title="依存関係を確認・検証する">
    テキストエディタで `requirements.txt` ファイルを開き、次を行います。

    1. パッケージのリストを確認する
    2. 不要な依存関係を削除する
    3. 必要に応じてバージョンを更新する
    4. 正確なバージョン（`==` 付き）を使っていることを確認する
  </Step>

  <Step title="依存関係をインストールする">
    記述されたすべての依存関係をインストールするには:

    ```bash theme={null}
    pip install -r requirements.txt
    ```

    このコマンドは、すべての協力者と本番環境がまったく同じバージョンを使用することを保証します。
  </Step>

  <Step title="バージョン管理と共有">
    `requirements.txt` が準備できたら、次のことができます。

    * チームと共有する
    * バージョン管理（git）に入れる
    * 全員が同じバージョンで作業することを保証する
    * Square Cloud へのデプロイを簡素化する

    プロジェクトを Square Cloud にホスティングすると、`requirements.txt` ファイルが自動的に検出され、ビルド中にすべての依存関係がインストールされます。
  </Step>
</Steps>

***

## 💡 ベストプラクティスとヒント:

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

***

## 🚀 次のステップ

`requirements.txt` ファイルの設定が完了したら:

1. Git リポジトリにコミットする。
2. プロジェクトを **Square Cloud** にホスティングする。
3. GitHub 経由での自動 deploy を設定する。
4. プロフェッショナルな Python アプリケーションホスティングへようこそ！

適切に構成された `requirements.txt` ファイルは、あらゆる成功する Python アプリケーションの基盤であり、Square Cloud 上でアプリケーションが完璧に動作することを保証します。
