
忘れないようにメモしておきます。これは、Gemini2.5の問い合わせ結果です。
良い時代になりましたね。
Pythonの仮想環境をバックアップする際、venv)を直接コピーすることではありません。
フォルダを直接コピーすると、PCの環境(OS、
正しいアプローチは、「インストールされているパッケージのリス
【推奨】requirements.txt を使ったバックアップと復元方法
これはPython開発における最も標準的でベストプラクティス
ステップ1: バックアップの作成 (pip freeze)
現在アクティブな仮想環境にインストールされているパッケージとrequirements.txt というファイルに保存します。
- 仮想環境をアクティベート(有効化)します。
Bash
# macOS / Linux source venv/bin/activate # Windows (コマンドプロンプト) venv\Scripts\activateターミナルの行頭に
(venv)のような表示が出ていることを確認してください。 pip freezeコマンドでパッケージ一覧をファイルに出力します。Bash(venv) $ pip freeze > requirements.txtこのコマンドを実行すると、プロジェクトのフォルダに
requiというファイルが作成されます。rements.txt requirements.txtの中身(例):beautifulsoup4==4.12.3 certifi==2024.6.2 charset-normalizer==3.3.2 idna==3.7 numpy==1.26.4 pandas==2.2.2 python-dateutil==2.9.0.post0 pytz==2024.1 requests==2.32.3 six==1.16.0 soupsieve==2.5 urllib3==2.2.1このファイルが仮想環境の「バックアップ」となります。
非常に軽量で、どんな環境にも持ち運べます。
ステップ2: バックアップからの復元 (pip install -r)
別のPCや、環境を作り直したい場所で、保存したrequireを使って環境を再現します。
- バックアップした
requirements.txtをプロジェクトフォルダに置きます。 - 新しい仮想環境を作成し、アクティベートします。
Bash
# 新しい仮想環境を作成 python -m venv new_venv # 新しい環境をアクティベート # macOS / Linux source new_venv/bin/activate # Windows new_venv\Scripts\activate pip installコマンドでrequirements.txtから全パッケージをインストールします。Bash(new_venv) $ pip install -r requirements.txtpipがrequirements.txtを読み込み、記載されているバージョンのパッケージを自動的にすべてインスト ールしてくれます。
これで、
その他の方法(より高度な依存関係管理ツール)
実際のアプリケーション開発では、PoetryやPipenvと
- Poetry:
pyproject.tomlファイルで依存関係を定義し、poファイルでバージョンを固定します。このetry.lock pyとproject.toml poetry.lockがバックアップ対象になります。 - Pipenv:
PipfileとPipfile.lockというファイルで同様の管理を行います。
これらのツールを使っている場合は、pyproject., Pipfile.lockなど)をGitで管理・
非推奨:仮想環境フォルダの直接コピー
前述の通り、venvフォルダをzipで圧縮したり、
- パスの非互換性: 仮想環境内のスクリプトには、
作成された場所の絶対パスがハードコード(直書き) されているため、場所を移動すると動作しません。 - OS・Pythonバージョンの非互換性: Windowsで作成した環境はLinuxでは使えません。
また、Python 3.9で作成した環境をPython 3.11しかないPCで使おうとしても動作しません。 - ファイルサイズが大きい: インストールした全パッケージのファイルやPython本体のコ
ピーが含まれるため、 バックアップファイルのサイズが非常に大きくなります。
まとめ
| 方法 | 手法 | メリット | デメリット | こんな時に |
| 推奨 | pip freeze > requirements.txt |
軽量、ポータブル(OS等に依存しない)、業界標準、 |
– | 個人・チーム開発の標準的なバックアップ、環境共有 |
| 非推奨 | フォルダを直接コピー/圧縮 | 見た目上はシンプル | 動作しない、ファイルサイズが大きい、移植性がない | 基本的に行うべきではない |
Python仮想環境のバックアップとは、**「requi)を保存すること」**