Pythonを学び始めると「仮想環境」という言葉を耳にして「仮想?」「環境?」どういうこと? となりませんか? この記事ではPythonの仮想環境(venv)について、解説していきます。
venvとは何か?
venvは「virtual environment(仮想環境)」の略称です。簡単に言えば、コンピュータの中に独立したPython環境を作ることです。
現実の例で喩えるとグローブボックスのようなものです。箱の中で行ったことを箱の外の環境に影響が及ばないようにするために用います。
なぜ仮想環境が必要なのか?
プログラミングを進めていくと、プロジェクトによって異なるバージョンのPythonやライブラリを使いたい場合が出てきます。しかし、仮想環境を使わない通常の環境では、1つのライブラリに対して1つのバージョンしかインストールできません。
例えば:
- プロジェクトAではライブラリXのバージョン2が必要
- プロジェクトBではライブラリXのバージョン3が必要
このような状況で、仮想環境が役立ちます。仮想環境を使えば、プロジェクトごとに独立した環境を作り、それぞれに必要なバージョンのPythonやライブラリをインストールできます。
「仮想」という名前が付いていますが後述するように、実体はディレクトリ(フォルダ)とそこに格納されたPythonインタープリタやその他のファイル群です。システムにインストールされたpython.exeとは別の場所に作られ、仮想環境外に影響が及ばないようになります。
「環境」とは「実行環境」のことで以下の要素でできています。これらをシステム全体とは別の場所に作ることでプロジェクト固有の実行環境として利用できるようになります。
要素 | 解説 |
---|---|
Pythonインタープリター | システム全体のPythonバージョンとは異なるバージョンを使用できる |
サイトパッケージ | 仮想環境専用のサイトパッケージディレクトリが作成される。ここにインストールされたパッケージやライブラリは、この仮想環境内でのみ利用可能。 |
実行スクリプト | 仮想環境に出入りするためのスクリプト群 |
仮想環境の作り方
PyCharmなどの統合開発環境(IDE)を使用している場合、仮想環境が自動的に作成されることがあります。しかし、IDEを使わずにPythonを実行する機会も多いでしょう。そんな時は、以下の方法で仮想環境を作成できます。
基本的な作り方
コマンドプロンプトやターミナルで以下のコマンドを実行します:
python -m venv venv
※ Macの場合は python
の代わりに python3
を使用してください。
実行するとシステムのデフォルトPythonバージョンが使われます。
python --version
Python 3.11.2がデフォルトであれば以下のように仮想環境が作成されます。python.exeを見ただけではわかりませんが、pip3.11.exeと表示されているので判別できますね。
特定のPythonバージョンで仮想環境を作る
特定のバージョンのPythonを使用したい場合は、以下のようにします。
Windows:
py -3.10 -m venv venv
Mac:
python3.10 -m venv venv
コマンドを実行すると以下のようにPythonのバージョンを指定して仮想環境を作成できます。
ただし、システムに対象バージョンのPythonがインストールされていなければなりません。
仮想環境の使い方
仮想環境に入る
仮想環境に入るには以下のコマンドを実行します。
Windows:
venv\Scripts\activate
Mac:
source venv/bin/activate
仮想環境に入るとターミナルの行頭に (venv)
と表示されます。
ちなみにこのコマンドで実行しているactivate
の実体はバッチやスクリプトファイルです。
仮想環境を終了する
仮想環境を終了するには、以下のコマンドを使用します(WindowsもMacも共通)。ターミナル行頭の(venv)
の表示が消え仮想環境から出たことが分かります。
deactivate
初心者つまずきポイント
特に初心者のうちは忘れがちですが、ライブラリをインストールは仮想環境に入ってから行うようにしましょう。そうしないと先述したとおりシステム全体に対してライブラリをインストールすることになってしまいます。
間違えてシステム全体にインストールしてしまった場合はアンインストールするpipコマンドを実行してください。
pip uninstall <ライブラリ名>
途中で本当に削除していいか? の確認がありますのでy
を入力して先に進みアンインストールします。
システムにインストールされているライブラリをまとめてアンインストールする
間違えてインストールしたライブラリが複数の依存関係があるものだと関連するライブラリも同時にインストールされます。Djangoであれば以下のようになります。
PS C:\Users\ikuma\Downloads> pip freeze asgiref==3.8.1 Django==5.0.6 sqlparse==0.5.0 tzdata==2024.1
このようなとき、上記の方法で一つ一つアンインストールするのは面倒です。以下の要領でまとめて削除するとよいです。
1. インストールされている全ライブラリをテキストファイルに出力する
pip freeze
コマンドの出力をテキストファイルに出力します。出力先のファイル名はなんでも構いません。
pip freeze > <ファイル名>
例えばpip freeze > hoge.txt
のようにします。
2. pip uninstall の -r と-y オプションでまとめてアンインストール
アンインストールの対象を上記手順で出力したファイルに書き込まれているものするためのオプションが-r
です。
-y
はアンインストール確認をすべてy
にするためのオプションです。
pip uninstall -r <ファイル名> -y
pip uninstall -r hoge.txt -y
のようにします。これでスッキリ。システム全体から誤ってインストールしてしまったライブラリをまとめてアンインストールできます。
まとめ
Pythonの仮想環境(venv)は、プロジェクトごとに独立した開発環境を作るための強力なツールです。初心者の方々も、プロジェクトを進める中で仮想環境の使用に慣れていくことで、より効率的で管理しやすい開発が可能になります。
プログラミングの世界では、整理整頓が大切です。仮想環境を上手に活用して、クリーンで効率的なPython開発を楽しんでください!