【Python】仮想環境を構築するためのコマンド" python3 -m venv .venv" はどういう意味?わかりやすく解説

Pythonで開発を始めるときに、よく目にするコマンドのひとつがpython3 -m venv .venv です。

特に最近のPythonプロジェクトでは、ほぼ必ず使われる基本コマンドですが、「これって何をしているの?」「なぜ必要なの?」と疑問に思う方も多いはずです。

この記事では、python3 -m venv .venv の意味や動作、使う理由、そして実際の使い方までなるべくわかりやすく解説します。

python3 -m venv .venv とは?

このコマンドは、「Pythonの仮想環境(virtual environment)」を作るためのものです。

つまり、「このフォルダ専用のPython環境」を作る命令です。

構文は以下のようになっています:

分解してみると:

部分 意味
python3 Pythonの実行コマンド。MacやLinuxでは通常この形(Windowsではpythonの場合も)。
-m venv Pythonに組み込まれている venv モジュールを使うという指定。
.venv 仮想環境を作るフォルダ名(ここでは .venv という名前で作る)。

つまり、「Pythonに標準で用意されている venv という仕組みを使って、 .venv というフォルダに仮想環境を作る」という意味です。

仮想環境とは?

仮想環境とは、プロジェクトごとに独立したPython環境を作る仕組みです。

Pythonではライブラリ(外部モジュール)を pip install でインストールしますが、

グローバル(全体)にインストールすると他のプロジェクトと混ざってしまうことがあります。

たとえば:

  • プロジェクトAでは「Django 3.2」を使いたい
  • プロジェクトBでは「Django 4.0」を使いたい

このような場合、同じPCに複数バージョンのDjangoを同時に入れると競合が起こります。

それを防ぐために、プロジェクトごとに分けた環境(=仮想環境)を作るのです。

python3 -m venv .venv は、そのための「独立したPython空間」を作るコマンドです。

.venv フォルダに何が作られるの?

コマンドを実行すると、プロジェクトフォルダに .venv という隠しフォルダが作られます。

中には以下のような内容が入ります:

この .venv の中には、システムのPythonとは別のコピー(リンク)が作られ、

pipでインストールしたライブラリもすべてこの中に保存されます。

つまり、このフォルダを使えば「他のプロジェクトに影響を与えないPython環境」が完成します。

仮想環境を有効化する(activate)

作成しただけでは仮想環境はまだ「無効(オフ)」です。

使う前に「有効化」する必要があります。

macOS / Linux の場合:

Windows の場合:

このコマンドを実行すると、ターミナルの先頭に (venv) のような表示が付きます。
これが「仮想環境の中に入っている」状態です。

この状態で pip install を使うと、インストールされるライブラリは .venv 内に保存されます。

例:仮想環境を使ってライブラリをインストールする

実際に試してみましょう。

この状態で pip list を見ると:

このように、requests.venv 内にだけインストールされています。

仮想環境を抜けると、グローバル環境には影響しません。

仮想環境を終了するには:

これで元の環境(グローバルPython)に戻ります。

.venv という名前の由来と慣習

仮想環境のフォルダ名は実は自由です。

たとえば:

としても問題ありません。

ただし、最近は .venv という名前が広く使われています。
理由は:

  • ドットで始まるので隠しフォルダ扱いになり、邪魔にならない
  • VSCodeなど多くのエディタが自動で .venv を検出して使ってくれる

という利点があるためです。

まとめ

python3 -m venv .venv は、Pythonの開発では欠かせない「仮想環境」を作るための基本コマンドです。

  • python3:Pythonを実行する
  • -m venv:仮想環境作成モジュールを使う
  • .venv:仮想環境を作るフォルダ名

作成後は source .venv/bin/activate(または .venv\Scripts\activate)で有効化し、その中でライブラリをインストールしていきます。

仮想環境を使うことで、プロジェクトごとに独立したPython環境を安全に管理できるようになります。

Python開発の第一歩として、まずこのコマンドの意味をしっかり理解しておきましょう!

おすすめの記事