1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python初心者向け】venvとは?仮想環境を使って安全に開発する方法

1
Posted at

はじめに

Pythonで開発を始めると、かなり早い段階で出てくるのが venv です。

最初は少し地味に見えます。

しかし、Python開発において venv はかなり重要です。
むしろ、これを知らずに開発を進めると、あとで環境構築の沼に沈みます。

この記事では、Python初心者向けに venv の役割、使い方、実務での基本的な流れを整理します。


venvとは

venv は、Pythonの仮想環境を作成するための標準機能です。

仮想環境とは、プロジェクトごとにPythonのライブラリを分けて管理する仕組みです。

たとえば、以下のような状況を考えます。

project-a → Flask 2.x が必要
project-b → Flask 3.x が必要

このとき、PC全体に直接ライブラリを入れてしまうと、バージョンの衝突が起きる可能性があります。

PC全体のPython環境
└── Flask 2.x? Flask 3.x?

どちらのプロジェクトに合わせるべきか分からなくなります。

そこで venv を使います。

project-a/.venv → Flask 2.x
project-b/.venv → Flask 3.x

このように、プロジェクトごとにライブラリ環境を分離できます。


なぜvenvが必要なのか

venv を使う理由は、大きく3つあります。

1. ライブラリのバージョン衝突を防げる

Python開発では、プロジェクトごとに必要なライブラリやバージョンが異なります。

たとえば、あるプロジェクトでは古いバージョンのライブラリが必要で、別のプロジェクトでは新しいバージョンが必要になることがあります。

venv を使えば、それぞれのプロジェクトで別々の環境を持てます。


2. PC本体のPython環境を汚さない

仮想環境を使わずに pip install を繰り返すと、PC全体のPython環境にライブラリがどんどん入っていきます。

すると、あとから

このライブラリ、どのプロジェクトで使っていたんだっけ?

という状態になります。

venv を使えば、ライブラリはプロジェクト内の仮想環境に閉じ込められます。

まさにプロジェクト専用の小部屋です。


3. 他の人と同じ環境を再現しやすい

チーム開発やQiita記事では、他の人が同じ環境を再現できることが大切です。

requirements.txt と組み合わせることで、必要なライブラリを簡単に共有できます。

pip freeze > requirements.txt

別の人は以下のコマンドで同じライブラリをインストールできます。

pip install -r requirements.txt

venvの基本的な使い方

ここからは、実際に venv を使う流れを説明します。


1. プロジェクトフォルダを作成する

まず、作業用のフォルダを作ります。

mkdir my-python-project
cd my-python-project

2. 仮想環境を作成する

以下のコマンドで仮想環境を作成します。

python3 -m venv .venv

実行すると、プロジェクトフォルダ内に .venv というフォルダが作成されます。

my-python-project/
└── .venv/

.venv の中に、このプロジェクト専用のPython環境が作られます。


3. 仮想環境を有効化する

MacやLinuxの場合は、以下のコマンドで有効化します。

source .venv/bin/activate

有効化されると、ターミナルの先頭に (.venv) のような表示が出ます。

(.venv) user@mac my-python-project %

この状態になっていれば、仮想環境が有効です。


4. ライブラリをインストールする

試しに Flask をインストールしてみます。

pip install flask

インストールされたライブラリを確認するには、以下を実行します。

pip list

このとき、インストールされたライブラリはPC全体ではなく、.venv の中に入ります。


5. requirements.txtを作成する

現在の仮想環境に入っているライブラリ一覧を保存します。

pip freeze > requirements.txt

すると、以下のようなファイルが作成されます。

my-python-project/
├── .venv/
└── requirements.txt

requirements.txt の中身は、たとえば以下のようになります。

blinker==1.9.0
click==8.1.8
Flask==3.1.0
itsdangerous==2.2.0
Jinja2==3.1.6
MarkupSafe==3.0.2
Werkzeug==3.1.3

このファイルがあると、他の環境でも同じライブラリを再現できます。


6. requirements.txtからライブラリを復元する

別のPCや新しい環境でライブラリを入れる場合は、以下を実行します。

pip install -r requirements.txt

これで requirements.txt に書かれたライブラリがまとめてインストールされます。


7. 仮想環境を終了する

作業が終わったら、以下のコマンドで仮想環境を終了できます。

deactivate

ターミナルの (.venv) 表示が消えれば、仮想環境から抜けています。


よく使うコマンドまとめ

# プロジェクトフォルダ作成
mkdir my-python-project
cd my-python-project

# 仮想環境作成
python3 -m venv .venv

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

# ライブラリをインストール
pip install ライブラリ名

# インストール済みライブラリを確認
pip list

# requirements.txtを作成
pip freeze > requirements.txt

# requirements.txtからインストール
pip install -r requirements.txt

# 仮想環境を終了
deactivate

VSCodeでvenvを使う場合

VSCodeを使っている場合は、仮想環境を作成しただけでは不十分なことがあります。

VSCodeが別のPythonを見ている場合があるためです。

その場合は、Pythonインタプリタを選択します。

手順は以下です。

Cmd + Shift + P
↓
Python: Select Interpreter
↓
.venv/bin/python を選択

これでVSCode上でも .venv のPython環境を使えるようになります。

ここを忘れると、

ターミナルでは動くのに、VSCodeでは動かない

という初心者泣かせの現象が起きます。

Python開発における小さな落とし穴です。
ただし、踏むとわりと深いです。


Git管理するときの注意点

.venv フォルダはGit管理に含めません。

仮想環境の中には大量のライブラリファイルが入っているため、そのままGitに入れるとリポジトリが重くなります。

そのため、.gitignore に以下を追加します。

.venv/

Git管理するのは .venv ではなく、requirements.txt です。

Gitに含めるもの    → requirements.txt
Gitに含めないもの → .venv/

サンプル構成

最終的には、以下のような構成になります。

my-python-project/
├── .venv/
├── requirements.txt
├── main.py
└── .gitignore

.gitignore の例です。

.venv/
__pycache__/
*.pyc

main.pyを作って動作確認する

簡単なPythonファイルを作成します。

print("Hello, venv!")

仮想環境を有効化した状態で実行します。

python main.py

実行結果です。

Hello, venv!

これで、仮想環境を使ったPython実行ができました。


まとめ

venv は、Python開発における仮想環境を作るための標準機能です。

ポイントをまとめると、以下の通りです。

・プロジェクトごとにライブラリを分けられる
・PC本体のPython環境を汚さない
・ライブラリのバージョン衝突を防げる
・requirements.txtと組み合わせると環境を再現しやすい
・.venvはGit管理しない

Pythonでプロジェクトを作るときは、まず venv を作る。
これは、開発の足場を固めるための基本動作です。

コードを書く前に環境を整える。
古くから言われる「段取り八分」に近い考え方です。

Python開発でも、よい段取りはよいコードへの第一歩です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?