Python仮想環境の作成(venv)
仮想環境は独立したPython実行空間であり、独自のインタープリター、インストール済みパッケージ、設定を持ち、システムのグローバル環境から完全に分離されています。
Python仮想環境(Virtual Environment)は独立したPython実行環境であり、同じマシン上で異なるプロジェクトごとに隔離されたPython環境を作成できます。
異なるプロジェクトはそれぞれの仮想環境で並行して実行でき、互いに干渉しません。
各仮想環境はそれぞれ次のものを持ちます:
- Python インタープリター
- インストール済みのパッケージ/ライブラリ
- 環境変数
仮想環境により各プロジェクトが独立した依存関係空間を持ち、バージョン競合を完全に解消します
なぜ仮想環境が必要か
- プロジェクトの分離:異なるプロジェクトで異なるバージョンのPythonやサードパーティ製ライブラリを使用できる
- 汚染の防止:インストールしたパッケージは現在の環境にのみ影響し、グローバルなPythonを汚染しない
- 依存関係の管理:以下により
requirements.txt環境を正確に記録・再現できる - 安全なテスト:他のプロジェクトに影響を与えずに、パッケージのアップグレードや試用を安心して行える
ユースケースの例:
- プロジェクトAはDjango 3.2バージョンを必要とする
- プロジェクトBはDjango 4.0バージョンを必要とする
- システム全体にインストールすると、2つのバージョンが競合する
仮想環境ツール
| ツール名 | タイプ | Pythonバージョン対応 | インストール方法 | 特徴 | 適用シーン |
|---|---|---|---|---|---|
| venv(推奨) | 組み込みモジュール | ≥ 3.3 | インストール不要、組み込み | 軽量、公式推奨、使い方が簡単 | 一般的な開発、日常プロジェクト |
| virtualenv | サードパーティ製ツール | 2.xおよび3.x | pip install virtualenv |
機能が豊富で、複数バージョンに対応 | 旧バージョンや高度な機能との互換性が必要な場合 |
| conda | Anaconda付属 | 2.xおよび3.x | Anaconda/Minicondaとともにインストール | 言語横断的なパッケージ管理、データサイエンス向けエコシステム | データサイエンス、機械学習プロジェクト |
より古いバージョンをサポートする必要がある場合は、virtualenv(Python 2互換)を使用できます:
pip install virtualenv # 非必须,venv 通常够用
この章ではvenv仮想環境の作成・管理を行います。
仮想環境の作成
Python 3.3+ には組み込みのvenvモジュールがあり、追加インストールは不要です。
使用手順
使用手順の概要
Pythonバージョンの確認:
python3 --version # 或者 python --version
仮想環境の作成:
# 基本语法 python3 -m venv 环境名称
たとえば、次の名前で作成する.venvという仮想環境:
例
mkdir my_project && cd my_project
# 仮想環境を作成('.venv'という名前は一般的な慣習)
python3 -m venv .venv
パラメータの説明:
-m venv:venvモジュールを使用.venv:仮想環境の名前(カスタマイズ可能)
作成後のディレクトリ構造
.venv/ ├── bin/ # 在 Unix/Linux 系统上 │ ├── activate # 激活脚本 │ ├── python # 环境 Python 解释器 │ └── pip # 环境的 pip ├── Scripts/ # 在 Windows 系统上 │ ├── activate # 激活脚本 │ ├── python.exe # 环境 Python 解释器 │ └── pip.exe # 环境的 pip └── Lib/ # 安装的第三方库
仮想環境のアクティブ化
アクティブ化後、現在のターミナルのpythonおよびpipコマンドは自動的にその仮想環境を指すようになり、すべてのインストール操作は隔離された空間内で行われます。
macOS / Linux
source .venv/bin/activate
Windows(CMD / PowerShell)
.venv\Scripts\activate
アクティブ化に成功すると、コマンドラインプロンプトに通常、環境名が表示されます:
(.venv) $
アクティブ化が有効かどうかを確認:
# 查看 Python 路径,应指向 .venv 目录 which python # macOS/Linux where python # Windows → /path/to/my_project/.venv/bin/python
仮想環境の使用
パッケージのインストール
アクティブな環境では、pipを使用してインストールしたパッケージは現在の環境にのみ影響します:
pip install package_name
例:
# 安装单个包(如Django) (.venv) pip install django==3.2.12 # 安装多个包 (.venv) pip install requests pandas # 安装速度慢?使用国内镜像 (.venv) pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
インストール済みパッケージの確認
(.venv) pip list Package Version ---------- ------- Django 3.2.12 pip 21.2.4 # 查看某个包的详情 (.venv) pip show django # 升级包 (.venv) pip install --upgrade pip
依存関係のエクスポート
requirements.txtを使用してプロジェクト環境を記録・再現するのは、チームでの共同作業の標準的な方法です:
(.venv) pip freeze > requirements.txt
requirements.txtファイルの内容例:
Django==3.2.12 requests==2.26.0 pandas==1.3.3
ファイルから依存関係をインストール
(.venv) pip install -r requirements.txt
ヒント:.venv/ を .gitignore に追加し、requirements.txt のみをコミットしてください。仮想環境はサイズが大きくパスに依存するため、バージョン管理に含めるべきではありません。
仮想環境を終了
作業が完了したら、仮想環境を終了できます:
deactivate
終了後、コマンドラインプロンプトは通常に戻り、Pythonとpipコマンドはシステムのグローバルバージョンを使用します。
仮想環境を削除
仮想環境を削除するには、対応するディレクトリを削除するだけで済みます:
# 确保已退出环境 deactivate
仮想環境を削除
仮想環境は本質的に通常のディレクトリであり、ディレクトリを削除すれば完全に取り除かれます:
macOS / Linux
rm -rf .venv
Windows
rmdir /s /q .venv
deactivate環境を終了してください。そうしないと、現在のシェルに無効な環境変数が残ります。実際のプロジェクト例
Djangoプロジェクトを開発するとします:
例
mkdir my_site && cd my_site
# 2. 仮想環境を作成してアクティブ化
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 3. Djangoをインストールして依存関係を記録
(.venv) pip install django==4.2
(.venv) pip freeze > requirements.txt
# 4. Djangoプロジェクトを初期化
(.venv) django-admin startproject config .
# 5. データベースをマイグレーションして開発サーバーを起動
(.venv) python manage.py migrate
(.venv) python manage.py runserver
# 6. 開発が完了したら、環境を終了
(.venv) deactivate
上級の使い方
Pythonのバージョンを指定
複数のPythonバージョンをインストールしている場合、どのバージョンを使って仮想環境を作成するかを指定できます:
python3.8 -m venv .venv # 使用 Python 3.8
pipなしの環境を作成
python -m venv --without-pip .venv
システムパッケージを継承する仮想環境を作成
python -m venv --system-site-packages .venv
よくある質問(FAQ)
1. 仮想環境にactivateスクリプトがないのはなぜですか?
正しいパスを使用していることを確認してください:
- Windows:
Scripts\activate - Unix/Linux:
bin/activate
2. 現在仮想環境にいるかどうかを確認するには?
コマンドラインプロンプトに環境名のプレフィックスがあるか確認するか、次のコマンドを実行します:
which python
3. パッケージのインストールが遅い
国内ミラーソースを使用:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
Pythonインタープリタのパスが仮想環境ディレクトリ内にあるか確認してください。
4. 仮想環境は場所を移動できますか?
お勧めしません。仮想環境内のスクリプトと設定ファイルには絶対パスがハードコードされているため、移動すると機能しなくなります。移行する場合、最も簡単な方法は環境を再作成し、requirements.txt依存関係を復元します。
5. 仮想環境はどのくらいの容量を占有しますか?
空の環境は約20〜50MBで、インストールするパッケージが増えると増加します。データサイエンスプロジェクト(NumPy、Pandas、PyTorch)では数GBに達する可能性があります。使用しなくなった仮想環境を定期的にクリーンアップするのは良い習慣です。
ベストプラクティス
- 各プロジェクトに独立した環境:異なるプロジェクトの依存関係が互いに影響するのを防ぎます
- 統一命名
.venv:ほとんどのIDE(VS Code、PyCharm)が自動的に認識できます - こまめに更新
requirements.txt:毎回pip install後に同期してエクスポート - バージョン管理では仮想環境を無視する:
.gitignoreに追加.venv/ - 廃止した環境を定期的にクリーンアップ:ディスク容量を解放します
- 本番環境ではバージョン番号を固定:
requirements.txtに明記し、==バージョンを固定して、意図しないアップグレードを防ぐ
# .gitignore 推荐配置 .venv/ __pycache__/ *.pyc .env *.egg-info/その他の拡張