Pythonの仮想環境venvの作成方法を解説

プログラミング
記事内に広告・商品プロモーションを含む場合がございます
スポンサーリンク

Pythonの仮想環境とは、プロジェクトごとに異なるPythonの依存関係(ライブラリやパッケージ)を独立して管理する仕組みです。プロジェクトごとに独立した環境を構築することで、デフォルトのPython環境をクリーンな状態で保持することができます。

この記事では、Pythonの仮想環境を作成するための標準モジュールであるvenvを使用した仮想環境の作成方法を解説します。

この記事でわかること
  • Pythonの仮想環境とは?
  • 標準モジュールのvenvを使用した仮想環境の作成方法

Pythonの仮想環境とは?

Pythonの仮想環境とは、プロジェクトごとに異なるPythonの依存関係(ライブラリやパッケージ)を独立して管理する仕組みです。

仮想環境はなぜ必要?

仮想環境が必要な理由は、環境を分離して各プロジェクトを独立させるためです。

Pythonのプロジェクトでは、標準ライブラリのほかにも、外部ライブラリをインストールすることがあります。

プロジェクトAとBでは、異なるバージョンのライブラリ(LinraryB)を使用していますね、、、

プロジェクトAでは使用するけど、プロジェクトBでは使用しないライブラリがインストールされてしまっています。逆もまた然り、、、

使用しないライブラリはインストールすべきでない

使用しないライブラリがインストールされていることで、以下のように予期しない問題を引き起こす可能性があります。

  • セキュリティリスク
    誤って悪意のあるパッケージをインストールした場合、すべてのプロジェクトが影響を受けます。
  • パッケージの競合
    システム全体に複数バージョンの同じパッケージをインストールすると、どちらかが動作しなくなるなど、競合が発生する可能性があります。
  • 開発環境の管理が困難
    同じ環境でプロジェクトごと異なるバージョンを管理するため、不要なライブラリの判別が難しく、メンテナンスが困難になります。パッケージ量が多く、環境が重たくなります。

仮想環境を使用することで、これらを回避することができます。

Pythonのプロジェクトごとに仮想環境を構築して、それぞれバージョンの違うライブラリやパッケージをインストールします。プロジェクトで使用しているライブラリやパッケージに限定して管理するため、安全で一貫性のある開発が可能になります。

少しだけ動かしてみたいライブラリがある場合にも、Pythonの仮想環境が役立ちます。不要になった場合は、仮想環境のディレクトリごと削除しましょう。

仮想環境の作成方法

PC環境

  • OS: Windows 11 Home
  • Python: 3.12.9, 3.13.2
  • pip: 25.0.1

仮想環境の作成

シェルやターミナルなど、コマンド実行ツールから仮想環境を作成します。仮想環境名(例:venv_v313)は、任意の名前を付けることができます。

$ python -m venv venv_v313(任意のフォルダ名)
バージョンを指定した仮想環境の作成

仮想環境を作成するとき、特定のバージョンを指定することができます。インストール済みのバージョンを使用して、指定のバージョンを仮想環境を作成します。

Windowsでは、py -0を実行することで、システムにインストールされているPython のバージョン一覧が表示されます。以下の結果から、Python 3.13(デフォルト)Python 3.12がインストールされていることがわかります。

$ py -0
 -V:3.13 *        Python 3.13 (64-bit)
 -V:3.12          Python 3.12 (64-bit)

pyランチャーを使用し、Python 3.12を指定して仮想環境を作成します。

$ py -3.12 -m venv venv_v312

仮想環境の有効化して、指定したバージョンで動作することを確認します。

$ .\venv_v312\Scripts\activate
(venv_v312) $ python -V
Python 3.12.9

仮想環境の有効化

コマンドを実行すると仮想環境が有効になります。

$ .\venv_v313\Scripts\activate

以下のようになっていれば、仮想環境の操作が可能です。

(venv_v313) $
# バージョンを確認
(venv_v313) $ python -V
Python 3.13.2

# pipコマンドでパッケージをインストール
(venv_v313) $ pip install パッケージ名

venvが実行できない!?

Windowsの初期設定では、PowerShellのスクリプトの実行が実行ポリシーにより許可されていません。そのためActivate.ps1が実行できず、仮想環境を有効化できません。

実行ポリシーは、スクリプトの実行を制限して、セキュリティを確保するための仕組みです。実行ポリシーが適切でない場合、以下のセキュリティエラーが表示されます。

$ .\venv_v313\Scripts\activate
.\venv_v313\Scripts\activate : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\Docu
ments\venv_v313\Scripts\Activate.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」を参照してください。
発生場所 行:1 文字:1
+ .\venv_v313\Scripts\activate
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

PowerShellセッションの有効な実行ポリシーを表示するには、Get-ExecutionPolicyコマンドを使用します。

$ Get-ExecutionPolicy
Restricted

例では、実行ポリシーがRestrictedであり、このポリシーはスクリプト実行が制限されます。

実行ポリシーを変更するには、Set-ExecutionPolicyコマンドを使用します。Scopeオプションを使用しない場合は、PCの全ユーザーのポリシーが変更されます。

# 現在のPowerShellセッションのポリシー変更
$ Set-ExecutionPolicy RemoteSigned -Scope Process

# 現在のユーザーのポリシー変更
$ Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

# PCの全ユーザーのポリシー変更(管理者権限で実行が必要)
$ Set-ExecutionPolicy RemoteSigned

実行ポリシーが変更できたことを、Get-ExecutionPolicyコマンドで確認します。

$ Get-ExecutionPolicy
RemoteSigned

これで、仮想環境を有効化できるようになります!

すべての実行ポリシーを取得するには?

Listオプションを使用することで、各スコープの実行ポリシーを優先順位の順に表示できます。

$ Get-ExecutionPolicy -List

         Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       AllSigned
 LocalMachine    RemoteSigned

実行ポリシーには、5つのスコープがあり、優先順位が高いものが適用されます。以下の表は、それぞれの影響範囲と特徴です。

スコープ影響範囲特徴
MachinePolicy全ユーザー(グループポリシー)グループポリシー管理者が設定。ユーザーは変更不可。
UserPolicy現在のユーザー(グループポリシー)グループポリシー管理者が設定。ユーザー単位の設定。
Process現在のPowerShellセッション一時的な設定であり、セッションを閉じると元の設定に戻る。
CurrentUser現在のユーザー他ユーザーへの影響がなく、管理者権限なしで変更可能。
LocalMachine全ユーザー(PC全体)デフォルトのスコープ。管理者権限で変更可能。
  • 企業や組織で一括管理
    MachinePolicy, UserPolicyを使用します。
  • 個人PCやPC管理者が管理
    Process, CurrentUser, LocalMachineを使用します。

仮想環境の無効化

コマンドを実行すると仮想環境が無効になります。

(venv_v313) $ deactivate

仮想環境の使用例

新規プロジェクトでの仮想環境の作成方法は以下です。

  1. プロジェクトのディレクトリ作成
  2. 仮想環境の作成
  3. 必要なパッケージのインストール
  4. 現在の環境のパッケージ一覧をrequirements.txtに保存
# プロジェクトのディレクトリ作成
$ mkdir new_project
$ cd new_project

# 仮想環境の作成
$ python -m venv venv
$ .venv\Scripts\activate # Windowsでの仮想環境の有効化

# 必要なパッケージのインストール
(venv) $ pip install -r requirements.txt # 既存の依存関係をインストール
(venv) $ pip install LibraryA==1.0 LibraryB==2.0 LibraryC==3.0

# 現在の環境のパッケージ一覧をrequirements.txtに保存
(venv) $ pip freeze > requirements.txt

おわりに

この記事では、Pythonプロジェクトにおける仮想環境の必要性と標準モジュールvenvを使用した仮想環境の作成方法を解説いたしました。仮想環境を適切に管理して、開発効率の向上、環境トラブルを最小限に抑えましょう。

まとめ

仮想環境が必要な理由は、各プロジェクトを独立させ、管理しやすくするためです。開発環境を分離することで、グローバル環境に影響を与えることなく、プロジェクトごとに異なるライブラリやPythonのバージョンを使用できます。

仮想環境は、シェルやターミナルから簡単に作成することができます。