閉じる

【Python】venv仮想環境の作成から削除までを解説【Windows/Mac対応】

Pythonで開発を始めると、パッケージのバージョン違いやプロジェクトごとの依存関係管理でつまずきやすいです。

こうした問題をスマートに解決してくれるのがvenvによる仮想環境です。

本記事では、Python標準機能であるvenvを使った仮想環境の作成から削除までを、WindowsとMacそれぞれの手順に分けて丁寧に解説します。

コマンド例や図解も交えながら、初心者の方でも迷わず設定できるように説明していきます。

venvとは?Python仮想環境を使うメリット

venv仮想環境の基本と仕組み

Pythonのvenv(ブイエヌブイ)は、1つのPCの中にプロジェクトごとに独立したPython環境を作る機能です。

仮想環境の中には、その環境専用のPython実行ファイルとpip、そしてライブラリ群が含まれます。

仕組みとしては、次のように動作します。

  1. venvを作成すると、そのフォルダ内にPython本体のコピー(またはリンク)と、独立したsite-packages(ライブラリ置き場)が作られます。
  2. 仮想環境を有効化(activate)すると、シェルやコマンドプロンプトがそのフォルダ内のPythonとpipを優先して使うようにパスを書き換えます。
  3. その状態でpip installすると、ライブラリはグローバルではなく、その仮想環境の中だけにインストールされます。

ポイントは「環境ごとにライブラリが分離される」ことです。

これにより、プロジェクト間で依存関係が衝突するリスクを大きく減らせます。

グローバル環境との違いと注意点

グローバル環境とは、OS全体で共通に使われるPython環境のことです。

ここにライブラリをどんどんインストールしていくと、次のような問題が起こりやすくなります。

1つ目はバージョン衝突です。

あるプロジェクトではnumpy==1.23が必要、別のプロジェクトではnumpy==2.0が必要といった場合、グローバル環境ではどちらか一方しか入れられません。

2つ目は環境の再現性の低さです。

グローバル環境にインストールしたライブラリは、ほかのプロジェクトからも参照できます。

そのため、ある日突然別のプロジェクトのために入れたライブラリが、今まで動いていたプロジェクトに悪影響を与えることがあります。

3つ目はアンインストールの難しさです。

長く使っているうちに不要なライブラリが溜まっていき、どれが必要でどれが不要なのか見分けにくくなります。

venvを使うと、これらの問題がかなり軽減されます。

ただし、注意点もあります。

  • 仮想環境ごとにライブラリを入れるため、ディスク使用量が多少増える
  • 仮想環境をactivateし忘れると、意図せずグローバル環境にインストールしてしまう
  • 複数の仮想環境を作ると、どのプロジェクトがどのvenvを使っているか管理が必要

こうした点を意識しながら、基本的には「すべてのプロジェクトでvenvを使う」という運用にするとトラブルを減らせます。

venvを使うべきケース

次のようなケースでは、基本的に必ずvenvを使うべきです。

  • DjangoやFastAPIなどフレームワークを使うWebアプリ開発
  • NumPyやpandas、scikit-learnなどを使ったデータ分析・機械学習プロジェクト
  • 社内ツールなど長期にわたって保守するスクリプト
  • Pythonの学習で複数の教材・講座を並行して進めるとき

一方で、Pythonをインストールした直後の動作確認など、「すぐ捨てるつもりの1回きりのスクリプト」では、あえてvenvを使わなくても困らないこともあります。

しかし、慣れるためにも、学習段階からvenvをセットで使うことをおすすめします。

Windowsでのvenv仮想環境の作成と有効化

Pythonとpipのバージョン確認

Windowsでは、最初にPythonとpipが正しくインストールされているか確認します。

PowerShellまたはコマンドプロンプトを開き、次のコマンドを実行します。

PowerShell
python --version
pip --version

ここでエラーが出る場合は、Pythonがインストールされていないか、PATHが通っていない可能性があります。

Windows版のPythonインストーラでは、インストール時にAdd python.exe to PATHのチェックを付けておくとスムーズです。

インストールとPATH設定が不安な場合は、次のような簡単なテストスクリプトを実行して確認しても良いです。

Python
# version_check.py
import sys

# Pythonのバージョンを表示
print("Python version:", sys.version)

# 実行中のPython実行ファイルのパスを表示
print("Executable path:", sys.executable)

上記を保存し、同じフォルダで次のように実行します。

PowerShell
python version_check.py
実行結果
Python version: 3.12.1 (tags/...)
Executable path: C:\Users\ユーザー名\AppData\Local\Programs\Python\Python312\python.exe

このように表示されれば、Pythonは問題なく動作しています。

venv仮想環境の作成コマンド

まず、プロジェクト用のフォルダを作成します。

例としてC:\projects\myappを使います。

PowerShell
# 任意の場所に移動
cd C:\projects

# プロジェクト用のフォルダを作成
mkdir myapp

# フォルダに移動
cd myapp

次に、venvを作成します。

仮想環境名はvenvとするのが一般的です。

PowerShell
# venvという名前の仮想環境を作成
python -m venv venv

このコマンドを実行すると、現在のフォルダの中にvenvというフォルダが作成され、その中にWindows用のScriptsフォルダやLibフォルダが生成されます。

フォルダ構成のイメージは次のようになります。

C:\projects\myapp
├─ venv
│  ├─ Scripts
│  ├─ Lib
│  └─ pyvenv.cfg
└─ (ここに自分のソースコードが入る)

PowerShell・コマンドプロンプトでの有効化と無効化

Windowsでは、シェルごとに有効化コマンドが異なる点に注意が必要です。

PowerShellでの有効化と無効化

PowerShellを使っている場合は、次のコマンドで有効化します。

PowerShell
# プロジェクトフォルダにいる前提
cd C:\projects\myapp

# 仮想環境を有効化
.\venv\Scripts\Activate.ps1

有効化に成功すると、プロンプトの先頭に(venv)のような表示が付きます。

PowerShell
(venv) PS C:\projects\myapp>

この状態では、Pythonとpipはvenv内のものを使っています。

確認のため、次のように実行してみます。

PowerShell
(venv) python -m site --user-base
(venv) where python

無効化したいときは、次のコマンドを実行します。

PowerShell
# 仮想環境を無効化
deactivate

コマンドプロンプト(cmd)での有効化と無効化

コマンドプロンプトの場合は、拡張子.batのスクリプトを実行します。

Batch File
cd C:\projects\myapp

:: 仮想環境を有効化
venv\Scripts\activate.bat

有効化後のプロンプト例:

Batch File
(venv) C:\projects\myapp>

無効化はPowerShellと同じくdeactivateコマンドで行います。

Batch File
deactivate

PowerShellでの実行ポリシーエラーへの対処

PowerShellで有効化しようとすると、次のような実行ポリシーエラーが出ることがあります。

ファイル C:\projects\myapp\venv\Scripts\Activate.ps1 は、このシステムではスクリプトの実行が無効になっているため・・・

この場合は、PowerShellを管理者として実行した上で、次のコマンドを実行し、ポリシーを変更します。

PowerShell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

変更後、再度.\venv\Scripts\Activate.ps1を試してみてください。

requirements.txtを使ったパッケージインストール

仮想環境を有効化したら、必要なライブラリをrequirements.txtでまとめてインストールすると便利です。

まず、プロジェクト直下にrequirements.txtファイルを作成し、次のように書きます。

flask==2.3.0
requests==2.32.0

そのうえで、仮想環境を有効化した状態で次のコマンドを実行します。

PowerShell
(venv) pip install -r requirements.txt

これで、ファイルに列挙したバージョン通りにライブラリがインストールされます。

既に環境を構築済みで、今の環境をrequirements.txtとして書き出したい場合は、次のようにします。

PowerShell
(venv) pip freeze > requirements.txt
実行結果
click==8.1.7
Flask==2.3.0
itsdangerous==2.2.0
Jinja2==3.1.4
MarkupSafe==2.1.5
Werkzeug==3.0.3

このrequirements.txtをGitなどで共有しておけば、別のPCでも同じ環境を簡単に再現できます。

Macでのvenv仮想環境の作成と有効化

Pythonとpipのバージョン確認

Macでは、環境によってpythonではなくpython3コマンドが標準になっていることが多いです。

まずはターミナルで次のコマンドを試してみます。

Shell
python3 --version
pip3 --version

もしcommand not foundとなる場合は、Pythonがインストールされていません。

この場合、Homebrewを使っているなら次のようにインストールできます。

Shell
# Homebrewが入っている前提
brew install python

どのPythonが使われているか確認したい場合は、次のようにwhichコマンドを使います。

Shell
which python3
which pip3
実行結果
/opt/homebrew/bin/python3
/opt/homebrew/bin/pip3

このように、インストール元のパスが表示されれば問題ありません。

venv仮想環境の作成コマンド

Macでは、Python3でvenvを作成するのが一般的です。

例として~/projects/myappというフォルダを使います。

Shell
# プロジェクトフォルダを作成
cd ~/projects
mkdir myapp
cd myapp

# venvという名前の仮想環境を作成
python3 -m venv venv

これで、カレントディレクトリの中にvenvフォルダが作られます。

MacやLinuxでは、フォルダ構成は概ね次のようになります。

~/projects/myapp
├─ venv
│  ├─ bin
│  ├─ lib
│  └─ pyvenv.cfg
└─ (ここに自分のソースコードが入る)

WindowsのScriptsフォルダに相当するのが、Macではbinフォルダです。

ターミナルでの有効化と無効化

MacやLinuxのターミナルでは、次のコマンドで仮想環境を有効化します。

Shell
# プロジェクトフォルダにいる前提
cd ~/projects/myapp

# 仮想環境を有効化
source venv/bin/activate

有効化に成功すると、プロンプトの先頭に(venv)が付きます。

Shell
(venv) user@Mac myapp %

この状態では、pythonやpipはvenv内のものを指します。

確認用のスクリプトを実行してみましょう。

Python
# check_venv.py
import sys

print("Python executable:", sys.executable)

有効化された状態で:

Shell
(venv) python check_venv.py
実行結果
Python executable: /Users/user/projects/myapp/venv/bin/python

このように、venv/bin/pythonが使われていれば成功です。

仮想環境を抜けたいときは、次のコマンドを実行します。

Shell
# 仮想環境を無効化
deactivate

無効化後は、プロンプトから(venv)が消え、再びグローバル環境のPythonに戻ります。

プロジェクトごとのvenv管理のコツ

MacでもWindowsでも共通ですが、「プロジェクトフォルダの直下にvenvを置く」管理方法が一番わかりやすいです。

例えば、次のような構成です。

~/projects
├─ webapp
│  ├─ venv
│  └─ src ...
├─ ml-project
│  ├─ venv
│  └─ notebooks ...
└─ tool-script
   ├─ venv
   └─ scripts ...

このようにしておくと、

  • プロジェクトフォルダに移動したらsource venv/bin/activateするだけで良い
  • プロジェクトを削除する際は、フォルダごと削除するだけで環境も一緒に消える
  • Gitなどのバージョン管理ではvenv/フォルダを.gitignoreに入れておく運用がしやすい

というメリットがあります。

1プロジェクト1venvを徹底すると、「このプロジェクトはどの環境で動いていたか」が明確になり、後から見直したときにも混乱しにくくなります。

venv仮想環境の削除とトラブル対処

venvフォルダの安全な削除方法

venvで作成した仮想環境は、特別なアンインストールコマンドは不要です。

「venvフォルダを丸ごと削除」すれば、それだけで環境は削除されます。

Windowsの場合:

PowerShell
# PowerShell
cd C:\projects\myapp
Remove-Item -Recurse -Force venv

Macの場合:

Shell
cd ~/projects/myapp
rm -rf venv

もちろん、エクスプローラーやFinderから手動でvenvフォルダを削除しても構いません。

ここで重要なのは、仮想環境そのものには「プロジェクトのソースコードは入っていない」という点です。

間違えてsrcフォルダなどを削除しないよう、フォルダ名をよく確認してから実行してください。

複数のプロジェクトでvenvを整理したいときは、次のようにrequirements.txtを先に書き出してから削除すると安心です。

Shell
# Mac/Linuxの例 (Windowsも同様)
source venv/bin/activate
pip freeze > requirements.txt
deactivate

# その後でvenvを削除
rm -rf venv

こうしておけば、必要になったときに同じvenvを再構築できます。

よくあるエラーと対処法

venvを使っていると、いくつか典型的なエラーに遭遇します。

それぞれ対処法をまとめます。

pythonコマンドが見つからない

エラーメッセージ例:

'python' は、内部コマンドまたは外部コマンド...

この場合は、Python自体がインストールされていないか、PATHが通っていない可能性があります。

対処としては次のような流れです。

  1. OSに合わせてPythonを再インストールする
  2. Windowsならインストール時にAdd python.exe to PATHにチェック
  3. Macならpython3 --versionで確認し、必要ならHomebrewでインストール

また、Macなどではpythonではなくpython3を使う必要がある場合も多いので、コマンド名を確認してください。

仮想環境のactivateができない

Windows PowerShellでのエラー例:

このシステムではスクリプトの実行が無効になっているため...

これは実行ポリシーの制限によるものです。

前述のように、管理者権限のPowerShellで次のコマンドを実行してから、再度試してみてください。

PowerShell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

また、Windowsでsource venv/bin/activateのようにMac/Linux向けのコマンドを打ってしまうケースも多いです。

OSごとに有効化コマンドが違う点を思い出して、正しいコマンドを確認してみてください。

pipでインストールしたのにimportできない

現象としては、

Python
import requests
# ModuleNotFoundError: No module named 'requests'

のようなエラーです。

多くの場合、原因は「ライブラリをインストールした環境」と「スクリプトを実行している環境」が違うことです。

例えば、グローバル環境でpip install requestsしたのに、スクリプトはvenv内のPythonで動いているといったケースです。

対処としては、

  1. 仮想環境をactivateした状態で
  2. もう一度pip install パッケージ名を実行する

という手順を踏んでください。

どのPythonが使われているかは、次のような確認スクリプトでチェックできます。

Python
# show_env.py
import sys
print(sys.executable)

これを実行して、想定しているvenv配下のパスが表示されていれば正しい環境です。

venvと他の仮想環境ツール(virtualenv・conda)の比較

Pythonの仮想環境ツールには、venv以外にもいくつか選択肢があります。

代表的なものを簡単に比較してみます。

ツール名提供元特徴向いている用途
venvPython標準軽量・標準ライブラリ / 追加インストール不要一般的なPython開発全般、学習用途
virtualenvサードパーティvenvより古くからある、追加機能が多い古いPythonバージョン対応など特殊用途
conda(Anaconda)Anaconda社Python以外のライブラリも一括管理可能データ分析・科学計算・研究用途

venvとvirtualenvはどちらも「Python用の仮想環境」にフォーカスしているのに対し、condaは「Python + OSレベルのパッケージ」まで含めて管理できるのが大きな違いです。

例えば、numpypandasだけでなく、BLASCUDAなどのネイティブライブラリも一緒に管理したい場合は、condaが便利です。

一方で、Webアプリ開発や軽めの業務スクリプトであれば、標準のvenvで十分です。

追加ツールをインストールする手間もなく、Pythonのバージョンアップにも追従しやすいため、まずはvenvから始めて、必要に応じてcondaなどを検討するという順番がおすすめです。

まとめ

venvを使うことで、プロジェクトごとに独立したPython環境を手軽に用意できるようになります。

WindowsでもMacでも、基本の流れは「Pythonの確認 → プロジェクトフォルダ作成 → venv作成 → activate → pipでライブラリ導入」です。

仮想環境を削除したくなったときも、venvフォルダを消すだけでクリーンに片付きます。

学習段階から1プロジェクト1venvの習慣を身につけておくと、将来のトラブルを大きく減らせますので、ぜひ今日から実践してみてください。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!