venvの使い方【仮想環境を使うメリットと、pipとの関係】

venvの基礎 仮想環境を使うメリットとpipとの関係
目次

venvとは

venv(読み方:ベンヴまたはヴイ・イー・エヌ・ヴイ)は、Pythonの「仮想環境」を作るための標準機能で、
「Pythonのプロジェクトごとに、専用の環境を作る仕組み」です。

通常、Pythonでパッケージ(ライブラリ)をインストールすると、PC全体に影響します。しかし、それだとプロジェクトごとに異なるパッケージやバージョンを使いたい場合に困ります。

➡ そこで venv を使うと、そのプロジェクト専用のPython環境を作れるようになります。

仮想環境とは?

仮想環境とは、Python専用の“作業部屋”をプロジェクトごとに作れる仕組みです。
この部屋の中では、他のプロジェクトやシステムのPythonライブラリに一切影響を与えません。

なぜ仮想環境が必要なのか

Pythonを使っていくと、「ライブラリのバージョンがぶつかる」「なぜか動かない」などのトラブルが起きがちです。
そんなときに役立つのが「仮想環境(virtual environment/venv)」です。

目的説明
プロジェクトごとの環境を分けられる他のプロジェクトに影響しない
依存関係の管理が楽requirements.txt で一括管理できる
デプロイが楽になるサーバー上でも同じ環境を再現できる

仮想環境を使わない場合

  • すべてのライブラリがシステム共通になる
  • プロジェクトAでは numpy==1.21 を使っていて
    プロジェクトBでは numpy==1.26 が必要なとき…
    → 競合してしまう!

仮想環境を使うと…

  • プロジェクトごとに完全に独立した環境が作れる
  • ライブラリのバージョン違いがあっても衝突しない
  • pipでインストールしたライブラリも、その環境内にだけ適用

具体的なイメージ

プロジェクト名必要な道具(ライブラリ)仮想環境(venv)名
音声認識AIツールwhisper, torchenv-whisper
画像生成AIツールdiffusers, transformersenv-imagegen
Webアプリflask, requestsenv-webapp

venvを使用している場合、それぞれの環境に、そのプロジェクトで必要なものだけが入るので、

  • ほかのプロジェクトに影響を与えない
  • 違うライブラリのバージョンがあってもケンカしない
  • 使わなくなったらフォルダごと削除する事が出来る

というわけです。

仮想環境の使い方ステップ(基本)

Python 3.3 以降であれば、以下の手順は 全バージョン共通です。

python -m venv venv     ← 仮想環境を作る
venv\Scripts\activate   ← 有効化
deactivate              ← 無効化

1. 仮想環境の作成

python -m venv myenv

myenv というフォルダができ、そこが仮想環境になります。
myenv は仮想環境の名前(好きな名前でOK)

2. 仮想環境の有効化

Mac/Linux

source myenv/bin/activate

Windows(PowerShell)

.\myenv\Scripts\Activate.ps1

Windows(コマンドプロンプト)

myenv\Scripts\activate

有効化されると、ターミナルの前に (myenv) という表示が出ます!

仮想環境を作るコマンドは、以下で入力します。

OS開く場所説明
WindowsWindows TerminalまたはPowerShell、スタートメニューでWindows Terminal、または「powershell」と入力して開けます。
macOS「ターミナル」Spotlight検索(⌘ + Space)で「Terminal」と入力して開けます。
Linux「端末」通常のターミナルアプリを使います。

ターミナルの開き方の詳細

ターミナル(Windows Terminal)コマンドプロンプト、PowerShell、の開き方

Windowsの場合は、(※Windows Terminal)を開きます。

Windows Terminal(ウィンドウズターミナルの起動方法…

コマンドの実行は、Windows標準の「Windows Terminal」を使って行います。
(※コマンドプロンプト(cmd)やPowerShellでも同様に動作しますが、Windows Terminalの方が操作しやすくおすすめです。)
コマンドプロンプト(Command Prompt)とは、Windowsに搭載されているテキストベースのインターフェースです。マウス操作ではなく、キーボードからコマンド(指示)を入力することで、パソコンを操作できます。

Windows Terminal起動方法

  1. スタートメニューで、左クリック➡ターミナルを起動もしくは、「Windows Terminal」と検索して起動
  2. デフォルトでは PowerShell または Command Prompt(cmd)(又は、WindowsPowerShell)が開きます

画像生成用途の場合は、Command Prompt コマンドプロンプト(CMD)と相性が良いです。

pip installconda などのモダン開発向けコマンドは、PowerShellと相性が良いです。

※詳しい使用方法や、Windows Terminalの設定方法は、こちらの記事をご覧ください。

Windows Terminalは、タブを切り替えて複数のシェルを使う事が出来ます

  • 上部の ボタンから新しいタブを開けます
  • をクリックすると以下の選択肢があります
    • PowerShell
    • Command Prompt
    • WSL(Linuxサブシステム)※インストール済みなら
    • Azure Cloud Shell(必要な場合)

※Microsoft 公式も「Windows Terminal」を推奨しているため、当サイトでも記載するWindowsのコマンド実行場所を、コマンドプロンプト(cmd)から「Windows Terminal」に変更致しました。

コマンド入力は間違えるとエラーになることもありますが、慣れると素早く作業ができる便利なツールです。

Macの場合は、(※ターミナル)を開きます。

ターミナル(Terminal)の起動方法…

Macにはターミナル(Terminal)というアプリがあり、これを使うことで、コマンドを入力してシステムを操作できます。

ターミナル起動方法

  1. **「Command ⌘ + Space」を押して、「Spotlight検索」**を開く
  2. 検索バーに「ターミナル」と入力してEnter

または、以下の手順でも開けます:

アプリケーションユーティリティターミナル

Linux のターミナルの起動方法…

Linuxでは「ターミナル」が、コマンド操作の基本です。ウィンドウの中でキーボード入力によりシステムを操作します。

Linuxターミナル起動方法

  • 1,:Ctrl + Alt + T を同時に押す(多くのLinuxディストリビューションで共通)
  • 2,:アプリケーション一覧から「ターミナル」または「Terminal」で検索して開く

Ubuntu、Fedora、Debianなど、ほとんどのLinux環境に標準で搭載されています。
Macのターミナルと似た雰囲気で、コマンドの使い方もほぼ共通です。

PowerShell の起動方法…(Windows)

PowerShell(パワーシェル)**は、Windowsに標準搭載されている、より高度な操作ができるコマンドラインツールです。見た目はコマンドプロンプトと似ていますが、より多機能で、プログラミング的な処理も得意です。

PowerShell起動方法

1,スタートメニューで「PowerShell」と検索してクリック

2,Windowsキー + R を押して「powershell」と入力 → Enter

コマンドプロンプトと同様、キーボードからコマンドを入力して操作します。
たとえば Get-ChildItem(=フォルダの中身を見る)など、PowerShell独自のコマンドもありますが、通常のコマンド(例:cdpythonなど)も使えます。

※コマンドプロンプト(cmd)の起動方法…(Windows)

Windowsキー + Rを押す

cmd」と入力してEnterを押す
または、スタートメニューで「コマンドプロンプト」と検索してもOK!

ターミナル(Windows Terminal)を開き、”○○○(ツール名)”と打ち込むと呼び出してくれます。

3. ライブラリを仮想環境にインストール

pip install requests
  • これは「その仮想環境だけ」にインストールされます

実際の手順(例)

たとえば、以下のように作業用フォルダを作って、その中で仮想環境を作るのがおすすめです

mkdir myproject
cd myproject
python -m venv myenv

python の部分を 使用するバージョンによって、py -3.9py -3.8 に置き換えればOKです。

すると、myproject/myenv/ という仮想環境が作成されます。

ポイント

  • python -m venv myenv は「myenvという名前の仮想環境を作る」という意味です。
  • myenv という名前は自由に変えてOK(例:.venvenv などもよく使われます)

4. 仮想環境の無効化(終了)

deactivate
バージョンvenv使用自分で選ぶべきか?
Python 3.10安定・推奨(特にWebUI向け)これを選べば間違いなし
Python 3.11〜3.12⚠️ 一部不具合あり(xformers等)上級者・検証目的以外は避けた方がよい
Python 3.8〜3.9安定。ただし一部ライブラリが非推奨に開発環境が古めの場合に使うことも

Pythonバージョン確認(仮想環境内で)

python --version

⚠️ バージョンによる違い・注意点

バージョン主な違い・注意点
3.3〜3.4pip が自動で入らないことがある → ensurepip を使う必要あり
3.5〜3.7venv 機能は安定しているが、サポート終了(非推奨)
3.8〜3.10 安定&pipも自動インストール → WebUIにも最適
3.11〜3.12venvは問題なく動作するが、一部のAIライブラリが未対応のことあり(例:xformers)

pipが入っていないときの対処法(古いバージョン)

python -m ensurepip --upgrade

これで仮想環境に pip を導入できます(Python 3.4以降で利用可能)。

項目3.3〜3.43.5〜3.73.8〜3.103.11〜3.12
venv利用可
pipの自動インストール❌ 要ensurepip一部あり
起動手順の違いほぼ同じ(pipだけ注意)同じ同じ同じ
推奨度⚠️ 最も推奨⚠️ (AI系では非推奨)

pipでライブラリをインストールする方法

pip install ライブラリ名

このとき入れたライブラリは、仮想環境の中だけにインストールされます。

【ステップ4】作業が終わったら無効化(deactivate)

deactivate

これでシステム全体のPython環境に戻ります。

補足:上記の
pip自体をインストールするコマンドと、
pipでライブラリをインストールするコマンドについての解説

少しややこしいコマンドの違いについて。

コマンド目的
python -m ensurepip --upgradepip自体をインストール・更新する
pip install ライブラリ名Pythonライブラリをインストールする(例:torch, transformersなど)

1. python -m ensurepip --upgrade の意味

これは、「pipが入っていない or 古いときに pip を導入・更新する」ためのコマンドです。

いつ使う?

  • 仮想環境を作ったばかりで pip が使えないとき
  • 古いPython(例:3.4〜3.5)で仮想環境に pip が入っていないとき
  • pip コマンドが壊れている、エラーになるとき

実行例:

python -m ensurepip --upgrade

--upgrade を付けると、最新のpipにアップグレードします。

2. pip install ライブラリ名 の意味

これは、実際に必要なPythonライブラリをインストールするためのコマンドです。

例:

pip install torch
pip install transformers
pip install gradio

これは、仮想環境の中でもグローバルでも使えます(※推奨は仮想環境内)。

両者の関係

  1. python -m ensurepip は「pip本体を準備する」ステップ
  2. pip install ~ は「pipを使ってライブラリを入れる」ステップ

つまり、pipが使える状態にしてから → pipでライブラリをインストール

よくある誤解の回避ポイント

誤解正しい理解
ensurepip でライブラリもインストールできる?❌ → できません。あくまで pip 本体だけ
pip install はpipがないと使えない?→ だから最初に ensurepip が必要な場合がある
仮想環境に自動でpipが入っている?(Python 3.4以降)ただし壊れていることもあるので確認は大事です。

pipと仮想環境の関係まとめ

項目仮想環境を使わない仮想環境を使う
pipの対象システム全体仮想環境の中だけ
バージョン競合起きやすい起きにくい
権限(Permission)root権限が必要な場合あり権限不要でOK
環境の整理やや煩雑プロジェクトごとに分離できて安全

仮想環境+pipでトラブル知らず!

仮想環境を使うことで、次のようなメリットがあります

  • ライブラリのバージョン衝突を防げる
  • 他のプロジェクトに影響を与えない
  • pipでのインストール・アンインストールが安心
  • エラーが減る、環境が汚れない!

Pythonで本格的に開発を始めたい方は、まず「venv(仮想環境)+pip」の基本セットを覚えるとグッと楽になりますよ!

  • URLをコピーしました!
目次