Python 仮想環境: venv と依存関係の分離

Python 仮想環境をマスターします。 venv と pip を使用して依存関係を安全に作成、アクティブ化、管理する方法を学びます。

エディターで試してみる

概要

複数の Python プロジェクトで作業する場合、必然的に依存関係の競合が発生します。プロジェクト A にはDjangoバージョン 3.2 が必要ですが、プロジェクト B にはDjangoバージョン 5.0 が必要です。これらのパッケージをグローバルにインストールすると、相互に上書きされ、アプリケーションの 1 つが破損します。仮想環境は、独自の Python バイナリとライブラリのインストールを含む、分離されたプロジェクト固有のディレクトリを作成することで、この重大な問題を解決します。

Python は、「venv」モジュールを通じて仮想環境の組み込みサポートを提供します。仮想環境を作成すると、シェル環境を調整するためのスクリプトとともに、Python インタープリターのコピーを含む新しいフォルダーが生成されます。アクティブ化すると、「pip」を使用してインストールしたパッケージはすべてこの分離フォルダーに直接ルーティングされ、グローバルな Python インストールはクリーンなままになり、プロジェクト固有のライブラリの影響を受けなくなります。

仮想環境の管理には、3 つの主要なコマンドが必要です。まず、`python -m venv venv` により、`venv` という名前の仮想環境ディレクトリが作成されます。次に、環境をアクティブ化します (macOS/Linux では「source venv/bin/activate」、Windows では「venv\Scripts\activate」)。最後に、`pipfrees>requirements.txt`を使用して依存関係を凍結し、他の開発者が正確な環境を再作成するために使用できるリストを作成します。仮想環境を理解することは、最新の Python エンジニアリングにとって譲れないベスト プラクティスです。

コードと実行の出力

パッケージ要件を作成、アクティブ化、出力するコマンドを示すモックアップ。

# This script prints the commands used to configure a virtual environment
commands = [
    "python -m venv my_env       # Create environment",
    "source my_env/bin/activate  # Activate environment (Mac/Linux)",
    "pip install requests        # Install isolated package",
    "pip freeze > requirements.txt # Export dependency catalog"
]

print("--- Virtual Environment Lifecycle ---")
for index, cmd in enumerate(commands, 1):
    print(f"Step {index}: {cmd}")
端子出力
--- Virtual Environment Lifecycle ---
Step 1: python -m venv my_env       # Create environment
Step 2: source my_env/bin/activate  # Activate environment (Mac/Linux)
Step 3: pip install requests        # Install isolated package
Step 4: pip freeze > requirements.txt # Export dependency catalog

段階的な実装

  • 依存関係の重複を防ぐためにワークスペース プロジェクトを分離する
  • Dockerコンテナ用の予測可能な環境の構成
  • 再現可能なコードベースをrequirements.txtリストとともに出荷する

よくある質問

Python プロジェクトではどのフォルダーを gitignore する必要がありますか?

仮想環境ディレクトリ (通常は「venv/」または「.venv/」) を常に .gitignore ファイルに追加する必要があります。外部ライブラリの依存関係を git にチェックしないでください。

仮想環境を非アクティブ化するにはどうすればよいですか?

ターミナル ウィンドウに「deactivate」コマンドを入力するだけで、シェルがグローバル Python 環境に戻ります。

関連トピック

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。