【Python】venvでの仮想環境の作り方

Pythonには仮想環境の作成や管理を行うvenvモジュールが標準で同梱されています。この記事ではvenvを使ってPythonの仮想環境の構築や管理する方法を解説します。

目次

仮想環境とは?

最初に仮想環境とは何か?というところからお話ししたいと思います(そんなことは知っている、という方は読み飛ばしていただいて構いません)。

仮想環境というと1つの物理マシン上で複数のOS(ゲストOS)を動かす技術を思い浮かべ、Pythonの仮想環境を作るのも何か難しくて大変なんじゃないかと思うかも知れませんが、そんなことはありません。とっても簡単です。

ここでいう環境とはプログラムの実行環境です。つまりプログラムを動かすときの環境です。したがってPythonの仮想環境とは、(仮想的に)作成されたPythonの実行環境のことを指します。

システムにPythonをインストールするとPythonの実行環境が1つ出来上がります。そして仮想環境を作成すると、ベースのPython実行環境とは別の(仮想)環境が作成されます。仮想環境は必要なだけいくつでも作成できます。

仮想環境は他からは隔離されているので、他の環境へ影響を与えずパッケージの追加や更新を自由に行うことができます。

仮想環境を作成するツール

仮想環境を作成・管理するためのツールはいくつかあります。ここでは代表的なツールを3つ紹介します。

venv

この記事で説明するツールです。Pythonの標準ライブラリに含まれていますので、すぐに使い始められます。標準ライブラリなので安心感があります。

virtualenv

サードバーティー製の仮想環境ツールです。利用するには別途インストールする必要があります。利用者も多く使いやすいツールだと思います。

conda

Anacondaに付属している仮想環境ツールです。Anacondaをインストールしていればすぐに使い始められます。こちらも使いやすいと思いますが、Anacondaが必要ないなら他のツールを選んだほうがいいかも知れません。

どれを選べば良いかという点に関しては、まずは悩むよりどれでもいいので使い始めるのがいいと思います。基本機能には大差がないので、要件や好みで選べばいいと思いますし、結局は使ってみないとわからないこともあります。

1つのツールで得た知識は、他のツールを使うときに役に立つので無駄にはなりませんので、気楽に初めてみましょう。ここでは初めて仮想環境を使う方を対象としているので、インストールが不要なvenvを利用します。

仮想環境の使い方

ここからは実際の仮想環境の使い方を説明します。簡単ですので、実際にご自身の環境で試してみると良いでしょう。

私の環境ではPythonインタプリタを実行するコマンドはpython3です。お使いの環境によってはコマンドが異なるかも知れません。その場合は読み替えて実施ください。

仮想環境の作成

仮想環境を作成するには、仮想環境を置くディレクトリに移動してから次のコマンドを実行します。仮想環境を置く場所はどこでも構いません。

$ python3 -m venv myenv

あるいは、絶対パスを指定してコマンドを実行します。

$ python3 -m venv /path/to/myenv

この場合は、存在しない親(や祖先)ディレクトリがあれば、それも作成されます。

この例で仮想環境の名前にmyenvと指定していますが、好きな名前で構いません。コマンドを実行すると仮想環境のディレクトリ(myenv)が作成され、このディレクトリにPythonインタプリタや必要なファイルが置かれます。

$ ls myenv/
bin		include		lib		pyvenv.cfg

仮想環境の削除

仮想環境を削除するには、単に作成した仮想環境のディレクトリを削除するだけです。仮想環境を無効化してから削除しましょう。

(myenv) $ deactivate 
$ rm -rf myenv/

仮想環境の有効化

仮想環境を利用するには、はじめに環境を有効化する必要があります。

LinuxやMacOSなどでbashかzshシェルを使っている場合は、sourceコマンドで「 <仮想環境ディレクトリ>/bin/activate」スクリプトを実行します。

$ source myenv/bin/activate

activateはbashシェルスクリプトで書かれています。そのためシェルにcsh/tcshを使っている場合は、代わりにactivate.cshを実行します。その他のシェルを使っている場合はドキュメントを参照して適切なシェルを実行してください。

仮想環境を複数作成している場合は、もちろん有効化したい仮想環境ディレクトリの「/bin/activate」を実行します。このように、いくつもの仮想環境を使い分けることができます。

Windowsの場合は、コマンドプロンプトから次のコマンドを実行します。

myenv\Scripts\activate.bat

仮想環境が有効化されると、プロンプトの先頭に仮想環境の名前が「()」に囲まれて表示されます。

(myenv) $ 

仮想環境の無効化

仮想環境を無効化するには次のコマンドを実行します。

(myenv) $ deactivate 

仮想環境でPythonを実行する

仮想環境を有効化した状態でPythonプログラムを実行すると、プログラムは仮想環境の中で実行されます。したがって、いつものようにプログラムを実行するだけです。

(myenv) $ python3 foo.py

仮想環境にパッケージをインストールする

仮想環境にパッケージをインストールするのも、仮想環境を有効化した状態でpipコマンドを使うだけです。

(myenv) $ python3 -m pip install requests

パッケージは有効化した仮想環境にインストールされます。そのため他の仮想環境やペースのPython実行環境に影響を与えることはありません。

その他のパッケージ管理も、いつもと同じようにpipコマンドを実行するだけです。やり方も何も変わるところはありません。ここではpipコマンドの使い方をいくつかおさらいしましょう。

パッケージを削除するにはuninstallサブコマンドを使います。

(myenv) $ python3 -m pip uninstall requests

showサブコマンドは指定されたパッケージの情報を表示します。

(myenv) $ python3 -m pip show requests

仮想環境にインストールされたすべてのパッケージを表示するにはlistサブコマンドを使います。

(myenv) $ python3 -m pip list

仮想環境の配布

他のマシンでも同じ仮想環境を利用したい場合は「pip freeze」でパッケージ一覧を出力しファイルへ保存します。「pip freeze」は「pip install」が解釈できる形式で一覧を生成するので、保存したファイルを配布することができます。一般に、このファイルは「requirements.txt」という名前で作成します。

(myenv) $ python3 -m pip freeze > requirements.txt

新しい環境ではrequirements.txtを「pip install -r」で読み込み、パッケージをインストールします。

(myenv) $ python3 -m pip install -r requirements.txt

ヘルプの参照

venvのヘルプを参照するには -h をつけて実行します。

$ python3 -m venv -h

仮想環境のアップデートやコピーなど、venvで他に出来ることが分かりますので、一度参照してみてください。

おわりに

仮想環境を使えば、ペースのPython環境を汚さずにパッケージ追加できるようになります。気になるパッケージをお試しする時などにも便利ですので、ぜひ活用してください。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

・PM、SE、SIなどを20年以上経験
・ネットワークスペシャリスト、セキュリティスペシャリストなど複数の資格を保有

目次