Pythonのvenvとは?仮想環境の基本から実践的な活用法まで徹底解説

この記事のポイント

Pythonで開発を進めていくと、「あるプロジェクトで使っているライブラリが、別のプロジェクトと競合してしまった...」という問題に直面することがあります。

venvは、そんな問題を解決してくれる仕組みです。

この記事を読むと、次のようなことがわかります。

  • venvを使ってプロジェクトごとに環境を分ける方法
  • 仮想環境の作り方と、有効化や終了の具体的な手順
  • パッケージのインストールや管理のやり方
  • VSCodeなどの開発ツールとの連携方法
  • 具体的な使用コマンド

「仮想環境」という言葉は難しそうに聞こえるかもしれませんが、実際はとてもシンプルです。

この記事を読めば、venvの仕組みがわかるだけでなく、Pythonでの開発作業をより安全で効率的にできるようになるでしょう。

目次

venvとは

Pythonで開発を進めていると、プロジェクトによって必要なパッケージやそのバージョンが異なる場面に直面します。

「プロジェクトAではDjango 3.2を使いたいけど、プロジェクトBでは最新のDjango 4.2を試したい」

こうした状況になったとき、どうすればいいでしょうか?1台のパソコンに両方のバージョンをインストールした場合、どちらかが上書きされてしまいます。

venvは、そうした問題を解決するための仕組みです。プロジェクトごとに独立した環境を作って、それぞれに必要なライブラリをインストールできます。

この仕組みがないと、システム全体にインストールされたパッケージが競合し、あるプロジェクトで動いていたコードが突然エラーを起こすといった問題が起きます。venvを使えば、こうした問題が起きる不安がなく、プロジェクトごとに最適な環境を構築できるのです。

ここではvenvに関する基本的な知識から学んでいきましょう。

なお、Pythonの環境構築について詳しく知りたい方は、以下の記事もあわせてご覧ください。

【関連】Pythonの環境構築を徹底解説!開発初心者向けに手順を紹介
【関連】Pythonの次世代パッケージマネージャー「uv」の使い方を徹底解説
【関連】PythonのIDEをわかりやすく解説!プログラミング初心者向けガイド

仮想環境という考え方

venvを理解するには、まず仮想環境という考え方を知る必要があります。実は、venvは「仮想環境を作るためのツール」だからです。

では、その仮想環境とは何でしょうか?

仮想環境とは、プロジェクトごとに専用のスペースを用意し、そこにPythonのライブラリをまとめて保存する仕組みです。

イメージとしては、プロジェクトごとに「専用の道具箱」を用意するようなものです。プロジェクトAの道具箱にはバージョン1.0のライブラリが入っていて、プロジェクトBの道具箱には最新のバージョン2.31が入っている、といった状態を作ることができます。

具体的には、プロジェクトフォルダの中に専用のフォルダを作り、そこにPythonの実行環境とライブラリを保存することで実現できます。

仮想環境を有効化すると、Pythonは通常のシステムフォルダではなく、この専用フォルダを優先的に見るようになります。結果として、1台のパソコンでも複数のPython環境を自由に切り替えて作業できるのです。

プロジェクトAでライブラリを更新しても、プロジェクトBには一切影響しません。この独立性が、仮想環境の最大の利点です。

また、プロジェクトが終わったら、仮想環境のフォルダを削除するだけで、システム全体に影響を及ぼすことなく片付けられます。この手軽さも、仮想環境が広く使われる理由の一つです。

【関連】
Pythonをもっと詳しく学ぶならpaizaラーニング

venvが標準機能である理由

venvはPython 3.3以降、標準ライブラリとして組み込まれています。

つまり、Pythonをインストールしたその瞬間から、特別な準備なしで仮想環境を使い始められるということです。以前は、別途ツールをインストールする必要がありましたが、標準化によってその手間がなくなりました。

また、標準機能であるため、公式ドキュメントやコミュニティのサポートも充実しています。トラブルが起きたときの情報収集もしやすく、学習のハードルが大幅に下がりました。

さらに、Pythonのバージョンアップに合わせて機能改善も継続的に行われています。セキュリティアップデートや新機能の追加も、Python本体と同じタイミングで提供されるため、常に最新の状態で利用できます。

他の仮想環境ツールとの違い

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

condaは、データサイエンス分野で広く使われているツールです。PythonだけでなくRやC++のライブラリも管理できる点が特徴で、NumPyやPandasといった科学計算ライブラリを扱う際に便利です。ただし、Anacondaのインストールが必要で、容量も大きくなります。

virtualenvは、venvの前身ともいえる存在です。Python2系でも利用できる互換性を持っており、レガシーなプロジェクトや古いバージョンのPythonを扱う必要がある場合に使われることがあります。

pipenvは、venvとpipの機能を統合した、より現代的なワークフローを提供するツールです。依存関係管理ファイル(Pipfile)を使用して、開発環境と本番環境の依存関係を明確に分離できます。ただし、別途インストールが必要です。

venvは、こういったツールと比較して最もシンプルで軽量です。標準機能であるため追加インストールが不要で、動作も高速です。複雑な機能はありませんが、基本的な仮想環境の構築には十分な機能を備えています。

初心者が最初に触れる仮想環境としては、シンプルで理解しやすいvenvが最も適しています。プロジェクトの規模や要件に応じて、後から他のツールに移行することもできるので、初心者の方はまずvenvから始めてみるのがおすすめです。

venvの作成と基本操作

venvを使った仮想環境の構築は、コマンドライン上で簡単に行えます。一度手順を覚えてしまえば、新しいプロジェクトを始めるたびに数秒で環境を整えられます。

ここでは、実際に仮想環境を作成し、有効化する手順を見ていきましょう。また、初心者がつまずきやすいエラーとその対処法についても解説します。

venvの作成方法

仮想環境を作るには、ターミナル(macOS/Linux)やコマンドプロンプト(Windows)を使います。

まず、プロジェクト用のフォルダを作って、そこに移動してください。その後、次のコマンドを実行します。

python -m venv myenv

このコマンドは、カレントディレクトリ(現在いるフォルダ)に「myenv」という名前のフォルダを作成し、その中に仮想環境を構築します。

コマンドの意味を確認してみましょう。

  • python:Pythonを起動する
  • -m venv:venvという機能を使う
  • myenv:作る仮想環境の名前

「myenv」の部分は自由に変更できます。よく使われる名前は「venv」「env」などです。
ちなみに、ドット(.)で始まる「.venv」といった名前にすると、Macなどでは隠しフォルダとして扱われます。

実行すると、指定した名前のフォルダが作成され、その中にPythonの実行ファイルやライブラリがコピーされます。

中身を覗いてみると、いくつかのフォルダが入っています。Windowsなら「Scripts」、Mac/Linuxなら「bin」というフォルダがあり、ここに仮想環境専用のPythonが入っています。

作成にかかる時間は数秒から十数秒程度です。容量も数十MBくらいなので、気軽に作成できます。

ちなみに、コマンドを実行すると、システムにインストールされているPythonのバージョンが自動的に使用されます。複数のPythonバージョンをインストールしている場合は、次のようにバージョンを指定することもできます。

python3.10 -m venv myenv

これで、Python 3.10の仮想環境が作られます。

仮想環境の有効化と終了

仮想環境を作っただけでは、まだ使うことはできません。「有効化」という操作が必要になります。

有効化すると、「今からこの仮想環境を使います」という宣言になり、この後に実行するコマンドがすべて仮想環境の中で動くようになります。

有効化の方法は、OSによって少し違います。

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

myenv\Scripts\activate

PowerShellでセキュリティポリシーによって実行が制限されている場合、エラーが出ることがあります。
その場合は、管理者権限で次のコマンドを実行してください。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

これは、わかりやすくいうと「自分が作ったスクリプトは実行していい」という許可を出す設定です。

macOSやLinuxでは、ターミナルで次のコマンドを実行しましょう。

source myenv/bin/activate

有効化すると、プロンプト(コマンドを入力する場所)の先頭に、仮想環境の名前が表示されます。

(myenv) $

この有効化状態でpythonコマンドやpipコマンドを実行すると、仮想環境内のPythonやpipが使用されます。パッケージのインストール先も自動的に仮想環境内になります。

つまり、仮想環境を有効化した状態でライブラリをインストールすると、システム全体ではなく、この仮想環境の中だけにインストールされるということです。他のプロジェクトには一切影響しません。

作業を終えるときは、次のコマンドで仮想環境を終了できます。

deactivate

このコマンドを実行すると、プロンプトから仮想環境名の表示が消え、通常の状態に戻ります。この切り替えによって、プロジェクトごとに異なる環境を自由に使い分けられるのです。

1点だけ注意点があります。それは、ターミナルを閉じると仮想環境も自動的に終了するという点です。
次にターミナルを開いたときは、もう一度activateコマンドを実行して有効化する必要があります。初心者がよく忘れるポイントなので、作業を始める前に確認する習慣をつけましょう。

作成時によくあるエラー

仮想環境を作ろうとしたとき、エラーが出ることがあります。よくあるパターンと対処法を見ていきましょう。

「ensurepip is not available」というエラー

これは、Pythonをインストールしたときに、pipという道具が正しく入っていないときに出るエラーです。Ubuntuなど一部のLinuxでは、Pythonが分割してインストールされるため、venvの部分が入っていないことがあります。この場合は次のコマンドで追加できます。

sudo apt install python3-venv

「pythonコマンドが見つかりません」というエラー(Windows)

Pythonをインストールしたのに、pythonコマンドが認識されない場合があります。これは、Pythonの場所(パス)が設定されていないのが原因です。Pythonをインストールするときに、「Add Python to PATH」というオプションにチェックを入れると解決します。

古いPythonが動いてしまう(macOS)

Macには最初からPython2系が入っていることがあります。これを使おうとすると、エラーが発生することがあります。このエラーが発生した場合は、Homebrewなどで新しいPython3をインストールして、python3コマンドを使いましょう。

「アクセスが拒否されました」というエラー

システムフォルダなど、保護されている場所で仮想環境を作ろうとすると、この権限エラーが出ます。自分のユーザーフォルダの中(Windowsなら「ドキュメント」、Macなら「書類」など)にプロジェクトフォルダを作って、そこで仮想環境を作るようにしましょう。

こういったエラーは、Python本体やOSの設定を見直すことで解決できます。

エラーが出たら、まずエラーメッセージをよく読んでみてください。「何が足りないのか」「どこが間違っているのか」のヒントが書かれています。

今では、生成AIにエラーメッセージをそのままコピペするだけで、すぐに解決につながることも多いです。エラーでつまづいたときは、ぜひ活用してみましょう。

installとパッケージ管理

仮想環境を作って有効化できたら、次は実際にライブラリをインストールしてみましょう。

「ライブラリ」や「パッケージ」という言葉が頻繁に出てきますが、これは「便利な道具セット」のようなものです。例えば、Webサイトにアクセスするための「requests」や、データ分析のための「pandas」などがあります。

ちなみに、「ライブラリ」と呼んでも「パッケージ」と呼んでも、どちらも間違いではありません。実際、開発者も混在して使っています。

ここでは、仮想環境の中にライブラリをインストールする方法と、管理のコツを学んでいきましょう。

仮想環境内でのinstall

ライブラリをインストールするには、pipというコマンドを使います。

pipは、Pythonのライブラリを管理するためのコマンドで、世界中の開発者が作った数十万種類のライブラリをインストールできます。

まず、仮想環境を有効化した状態にしてください。その状態で、次のようにコマンドを実行します。例として、HTTPリクエストを扱う「requests」というライブラリをインストールしてみましょう。

pip install requests

これだけで、requestsライブラリが仮想環境の中にインストールされます。

インストールされる場所は、システム全体ではなく、仮想環境のフォルダの中です。
具体的には「myenv/Lib/site-packages」(Windows)や「myenv/lib/python3.x/site-packages」(macOS/Linux)のような場所に保存されます。

ここが重要なポイントです。仮想環境を使っているので、このライブラリは他のプロジェクトには影響しません。別のプロジェクトで同じrequestsライブラリの違うバージョンを使っていても、競合が起きないのです。

インストールするとき、指定したライブラリだけでなく、そのライブラリが動くために必要な他のライブラリも自動的にインストールされます。

例えば、requestsをインストールすると、charsetやidnaといった関連ライブラリも一緒にインストールされます。この自動処理のおかげで、必要なライブラリを指定するだけで、動作に必要なすべての道具が揃います。

複数のライブラリを一度にインストールすることもできます。次のように、スペースで区切って並べるだけです。

pip install requests numpy pandas

ここで注意点があります。仮想環境を有効化し忘れてpipコマンドを実行すると、システム全体にライブラリがインストールされてしまいます。

必ず、プロンプトに仮想環境名が表示されていることを確認してから、installコマンドを実行するようにしましょう。

パッケージ一覧の確認

今、仮想環境にどんなライブラリが入っているか確認したいときは、pip listコマンドを使います。

pip list

実行すると、次のような一覧が表示されます。

出力例

Package    Version
---------- -------
pip        23.2.1
requests   2.31.0
setuptools 68.0.0

左側がライブラリの名前、右側がバージョン番号です。

この一覧を見ることで、「どのライブラリがインストールされているか」「バージョンはいくつか」が一目でわかります。特にチーム開発では、全員が同じ環境を再現する必要があるため、パッケージ一覧の把握は重要なことです。

特定のライブラリについて、さらにくわしく知りたい場合は、pip showコマンドを使います。

pip show requests

このコマンドを実行すると、そのライブラリのバージョン、作者、依存関係、インストール場所などがくわしく表示されます。

さらに便利な機能として、pip freezeコマンドがあります。

pip freeze > requirements.txt

このコマンドは、現在の環境にインストールされているすべてのライブラリとそのバージョンを「requirements.txt」というファイルに保存します。

このファイルがあれば、他の環境でも同じ構成を再現できるのです。

次のコマンドで、一括インストールできます。

pip install -r requirements.txt

この機能は、チーム開発や本番環境へのデプロイでかなり重要な役割を果たします。
新しいメンバーがプロジェクトに参加したとき、requirements.txtさえあれば、すぐに同じ開発環境を構築できるからです。

ライブラリをアップデートする場合は、--upgradeオプションを付けます。

pip install --upgrade requests

逆にライブラリをアンインストールする場合は、pip uninstallコマンドを使います。

pip uninstall requests

今回紹介したコマンドを組み合わせることで、仮想環境内のパッケージを柔軟に管理できます。
ぜひ覚えておきましょう。

バージョン指定の考え方

ライブラリをインストールするとき、「最新版を使えばいいのでは?」と思うかもしれません。しかし、実際の開発では、バージョンを指定してインストールすることが大切です。なぜでしょうか?

最新バージョンには新しい機能が追加されていますが、それと同時に以前のバージョンとの互換性がなくなることがあります。つまり、最新版にアップデートすることで、今まで動いていたコードが動かなくなる可能性があるのです。

Pythonのライブラリは、「セマンティックバージョニング」という規則に従ってバージョン番号が付けられることが一般的です。

バージョン番号は「メジャー.マイナー.パッチ」の形式になっています。例えば「2.28.1」の場合、各数字は次のような意味合いを持っています。

  • メジャーバージョン(2):大きな変更
  • マイナーバージョン(28):新機能の追加
  • パッチバージョン(1):バグ修正

初心者のうちは、特定のバージョンを指定してインストールする習慣をつけることが大切です。

次のように記述すれば、指定したバージョンをインストールできます。

pip install requests==2.28.0

この「==2.28.0」の部分で、バージョンを固定しています。

バージョンの範囲を指定することもできます。

pip install 'requests>=2.28.0,<3.0.0'

この指定では、2.28.0以上3.0.0未満のバージョンがインストールされます。「メジャーバージョンは変えたくないけど、細かいバグ修正は受け入れたい」といった場合に便利な方法です。

バージョン指定なしでインストールすることもできます。その場合は常に最新版が入りますが、後で「動かなくなった...」という問題を避けるため、きちんと動作を確認してからrequirements.txtでバージョンを記録しておきましょう。

長期的なプロジェクトでは、ライブラリのアップデートが気になってきます。特にセキュリティの修正や重要な機能改善が含まれる場合は、更新を検討する価値があるのも事実です。

ただし、メジャーバージョンが上がるアップデート(例:2.x.x → 3.x.x)には注意が必要です。大きな変更が含まれている可能性があるので、いきなり本番環境で更新せず、まずテスト環境で動作を確認してから適用しましょう。

こうした管理をしっかり行うことで、「突然エラーが出て動かなくなった!」という事態を防ぐことができます。

開発環境でのvenv活用

ここまでで、仮想環境の作り方と基本的な使い方がわかりました。

では、実際の開発ではどう使えばいいのでしょうか?

「プロジェクトが増えてきたら、どう管理すればいい?」
「VSCodeなどのエディタとはどう連携するの?」

使っているうちに、そういった疑問も湧いてきます。

実践的な活用方法を知ることで、venvをより効果的に使えるようになりましょう。

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

実際の開発現場では、複数のプロジェクトを同時に進めることが一般的です。例えば、「プロジェクトAはWebアプリ、プロジェクトBはデータ分析、プロジェクトCは機械学習の勉強」といった具合です。それぞれで使うライブラリもバージョンも違います。

こんなとき、どう整理すればいいでしょうか? おすすめの方法は、プロジェクトのフォルダの中に、そのプロジェクト専用の仮想環境を作ることです。

例えば、次のようなフォルダ構成にします。

project_a/
  ├── venv/
  ├── src/
  └── requirements.txt

project_b/
  ├── venv/
  ├── app/
  └── requirements.txt

プロジェクトAの仮想環境は「project_a/venv」に、プロジェクトBの仮想環境は「project_b/venv」に配置されています。

こうしておけば、プロジェクトAでライブラリを更新しても、プロジェクトBには一切影響しません。それぞれが完全に独立しているからです。プロジェクトフォルダの中に仮想環境を置くことで、「このフォルダごとバックアップすれば環境も一緒に保存できる」という副次的な利点もあります。また、プロジェクトを削除したくなったら、フォルダごと削除すれば環境も一緒に消えるので、システムが散らかることもありません。

注意点としては、仮想環境のフォルダはサイズが大きくなるので、Gitなどのバージョン管理システムには含めないようにすることです。

.gitignoreファイルに次の行を追加しましょう。

venv/ *.pyc __pycache__/

こうすることで、仮想環境の実体はリポジトリに含めず、requirements.txtだけを管理できます。

リポジトリとは、Gitなどで管理するプロジェクトのファイル保管場所のことです。コードや設定ファイルを記録して、チームで共有したり、変更履歴を残したりするために使います。

他の開発者は、リポジトリをクローンした後、自分の環境で仮想環境を作成し、requirements.txtから依存ライブラリをインストールすることで、同じ環境を再現できます。

ちなみに、複数のプロジェクトを頻繁に切り替える場合、プロジェクトディレクトリに移動するたびに仮想環境を有効化する手間が面倒に感じるかもしれません。

慣れてきたら、シェルのエイリアス機能を使って、コマンド一つで移動と有効化を同時に行う設定もできます。シェルの設定ファイルや、エイリアスの概念、各OSごとにコマンドが異なる点などを考慮して、ここでは割愛しますが、そういうことができるということだけでも覚えておきましょう。

まずは基本の操作に慣れてから、試してみてください。

VSCodeとvenvの連携

VSCodeでPythonの開発をする場合、venvと連携させると、かなり便利です。

VSCodeは、Pythonの実行環境(どのPythonを使うか)を選択する機能を持っています。仮想環境のPythonを指定することで、エディタ全体がその環境を使うようになります。

設定方法を見ていきましょう。

1. プロジェクトフォルダをVSCodeで開く

まず、プロジェクトフォルダをVSCodeで開きます。

2. Pythonインタプリタを選択する

コマンドパレット(Ctrl+Shift+P または Cmd+Shift+P)を開いて、「Python: Select Interpreter」と入力します。すると、システムにインストールされているPython環境の一覧が表示されます。

プロジェクトフォルダ内に「venv」という名前で仮想環境を作成していれば、VSCodeが自動的に検出して選択肢に表示してくれます。

もし表示されない場合は、「Enter interpreter path」を選択して、手動で仮想環境内のPython実行ファイルを指定します。

  • Windows: venv\Scripts\python.exe
  • macOS/Linux: venv/bin/python

3. 自動的に有効化される

この設定をすると、VSCodeのターミナルで新しいセッションを開いたときに、自動的に仮想環境が有効化されます。プロンプトに仮想環境名が表示され、すぐに開発作業を始められるため、わざわざ手動でactivateコマンドを実行する必要がなくなるのです。

さらに便利なのは、VSCodeのコード補完やデバッグ機能も仮想環境内のライブラリを参照するようになることです。例えば、requestsライブラリをインポートする際、仮想環境にインストールされているバージョンの関数やクラスが自動補完候補として表示されます。

初心者がよくやってしまうミスがあります。それは、VSCodeでPythonの環境を設定し忘れて、システム全体のPythonを使ってしまうことです。

この状態だと、せっかく仮想環境にインストールしたライブラリが認識されません。コードを実行すると「ModuleNotFoundError」というエラーが出てしまいます。

もしこのエラーが出た場合には、仮想環境の設定を忘れていないか確認してみましょう。

ちなみに、VSCodeの設定は.vscode/settings.jsonというファイルに保存されます。

チームで開発している場合、このファイルをGitリポジトリに含めておけば、メンバー全員が同じ設定を使えるため便利です。

{ "python.defaultInterpreterPath": "${workspaceFolder}/venv/bin/python" }

こうした設定をきちんとしておくと、開発がとてもスムーズになります。エディタの機能をフルに活用しながら、安全な仮想環境で開発を進められるようになりましょう。

Pythonのバージョンとの関係

venvには、重要な特徴があります。

それは、仮想環境を作成したときのPythonバージョンが、そのまま仮想環境のPythonバージョンになるということです。

例えば、Python 3.10で仮想環境を作成すれば、その環境内でもPython 3.10が使われます。

仮想環境内でpython --versionコマンドを実行すると、仮想環境のバージョンを表示できます。

python --version

「プロジェクトによって違うPythonバージョンを使いたい」という場合はどうすればいいでしょうか?

その場合は、使いたいバージョンのPythonをシステムにインストールして、そのPythonから仮想環境を作成します。

例えば、Python 3.9とPython 3.11の両方がインストールされている環境で、Python 3.9の仮想環境を作成するには、次のように実行します。

python3.9 -m venv myenv_py39

これにより、Python 3.9を使用する仮想環境が作成されます。同様に、Python 3.11の環境も作成できます。

python3.11 -m venv myenv_py311

この仕組みを理解すると、「古いWebアプリケーションのメンテナンスはPython 3.8で、新しいプロジェクトは最新のPython 3.11で」といった使い分けができます。レガシーなプロジェクトのメンテナンスと、最新バージョンでの新規開発を並行して進められるのです。Pythonのバージョンが上がると、新しい機能が使えたり、動作が速くなったり、セキュリティが強化されたりします。

ただし、良いことばかりではありません。古い書き方が使えなくなったり、以前は動いていたコードがエラーになったりすることもあるからです。

仮想環境を使えば、こうしたリスクを最小限に抑えながら、段階的に新バージョンへの移行を進められます。

注意点としては、仮想環境を作成した後にシステムのPythonをアップデートしても、既存の仮想環境のPythonバージョンは変わらないということです。新しいバージョンのPythonを使いたい場合は、仮想環境を作り直す必要があります。

なお、プロジェクトのrequirements.txtには、必要なPythonのバージョンを記載しておくと親切です。

# Python 3.10以上が必要 python_requires='>=3.10'

こうしておけば、チームメンバーや未来の自分が「あれ、このプロジェクトってどのPythonで動くんだっけ?」と迷わずに済みます。

ちょっとした手間の一言が、後で大きな助けになるので覚えておきましょう。

よくある質問(Q&A)

Q: 仮想環境を削除するにはどうすればよいですか?

A: 仮想環境のフォルダを直接削除するだけで大丈夫です。特別なアンインストール手順は必要ありません。削除する前に、念のためdeactivateコマンドで仮想環境を終了しておくと安全です。

Windowsではエクスプローラーから、macOS/Linuxではrm -rf myenvコマンドでフォルダごと削除できます。

Q: 複数の仮想環境を同時に有効化できますか?

A: 1つのターミナルウィンドウでは、同時に1つの仮想環境しか有効化できません。ただし、別々のターミナルウィンドウを開けば、それぞれ異なる仮想環境を有効化して作業できます。

これにより、複数のプロジェクトを並行して開発する際も、それぞれの環境を使い分けられます。

Q: equirements.txtはどう使えばよいですか?

A: pip freeze > requirements.txtで現在の環境のライブラリ一覧をファイルに保存します。

別の環境ではpip install -r requirements.txtで同じ構成を再現できます。新しいメンバーがプロジェクトに参加したときや、本番環境にデプロイする際に非常に便利です。

pip freeze > requirements.txt pip install -r requirements.txt

Q: venv作成後にPythonを更新したらどうなりますか?

A: pシステムのPythonを更新しても、既存の仮想環境は古いバージョンのままです。

新しいバージョンを使いたい場合は、仮想環境を作り直す必要があります。この仕様のおかげで、既存のプロジェクトは意図せず影響を受けることがありません。

Q: 仮想環境をGitで管理すべきですか?

A: 仮想環境のフォルダ自体は容量が大きく、環境依存のファイルも含まれるため、通常は.gitignoreに追加してリポジトリに含めません。

代わりにrequirements.txtを管理します。これにより、リポジトリのサイズを小さく保ちつつ、誰でも同じ環境を再現できます。

Q: 仮想環境の名前は自由に付けてよいですか?

A: はい、任意の名前を付けられます。ただし、「venv」「env」「.venv」といった一般的な名前を使うことで、他の開発者がプロジェクト構造を理解しやすくなるので、覚えておきましょう。

また、ドットで始まる「.venv」は、隠しフォルダとして扱われるため、ファイルブラウザで見えにくくなる利点があります。

Q: 仮想環境内でグローバルパッケージを使えますか?

A: デフォルトでは、仮想環境はシステムのライブラリから完全に独立しています。

ただし、venv作成時に--system-site-packagesオプションを付けると、システムのライブラリも参照できるようになります。

python -m venv --system-site-packages myenv

この機能は、大きなパッケージ(NumPyなど)を複数の環境で共有したい場合に便利ですが、環境の独立性が損なわれるため注意しましょう。

まとめ

Pythonのvenvは、プロジェクトごとに独立した開発環境を作れる便利な仕組みです。

「ライブラリのバージョンが競合して困る...」
「プロジェクトAの環境をいじったら、プロジェクトBが動かなくなった...」

こういった問題で悩むことがなくなります。

ここまで学んできた内容を振り返ってみましょう。

venvの基本

  • Pythonの標準機能なので、追加でインストールする必要がない
  • コマンド1つで仮想環境を作成できる
  • 有効化と終了を簡単に切り替えられる

ライブラリ管理

  • 仮想環境ごとにライブラリを独立して管理できる
  • バージョン指定で「確実に動く環境」を作れる
  • requirements.txtで環境を簡単に再現できる

実践的な使い方

  • プロジェクトフォルダの中に仮想環境を配置する
  • VSCodeなどのエディタと連携できる
  • Pythonバージョンごとに環境を使い分けられる

最初は「コマンドが多くて面倒...」と感じるかもしれません。
しかし、一度使い方を覚えてしまえば、開発作業の効率が格段に上がることが実感できるはずです。

実際、venvの使い方をマスターすることで、Pythonプログラミングの幅はとてつもなく大きく広がります。複数のプロジェクトを安心して同時進行できるようになり、新しい技術も気軽に試せるようになるからです。

venvの使い方を学んだ後は、実践的なプロジェクトに挑戦して、さらにスキルを磨いていきましょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. ナレッジ
  3. Pythonのナレッジ記事一覧
  4. Pythonのvenvとは?仮想環境の基本から実践的な活用法まで徹底解説