Virtualenv の使い方
Virtualenv を使うと、ひとつのシステム内に独立した複数の開発環境を構築することが可能になります。
なぜ専用の開発環境を用意するの?
実際にソフトウェアを開発していると、各種ライブラリの依存関係の都合があって、 特定のアプリケーションにはこのバージョンのこれこれライブラリを使いたいとか、そういう場合があります。
あるいは一旦リリースしたソフトウェアは、実際の運用環境のバージョンのライブラリで揃えておきたいでしょう。
こうした場合、例えば特定のライブラリをそのシステム全体に適用する形でバージョンアップすると問題が発生します。
その他、単純にそのシステムの管理者でない限り、システムワイドには何もインストールできず、使いたいライブラリが使えないということもあるでしょう。
Virtualenv はこうした問題を解決するツールです。ひとつのシステム内にそれぞれ個別の開発環境を作成できるようにします。
Virtualenv のインストール方法
pip でインストールします。
sudo pip install virtualenv
Ubuntu では次の方法でもインストール可能です。
sudo apt-get install python-virtualenv
しかし、pip でインストールするより古いバージョンがインストールされる場合があるようです。 なるべく pip でインストールする方がよさそうです。
virtualenv のバージョン確認をするためには、 --version オプションを指定して実行します。
virtualenv --version
Virtualenv の基本的な使い方
基本的には、仮想環境を作成 → 使うときに環境に入る (有効化) → 使ったら環境から抜ける、というだけです。
仮想環境は任意の名前で識別されます。
仮想環境の作成
任意の名前の仮想環境を作成するには次のコマンドを実行します。
virtualenv <作成する環境名>
例えば env1 という名前の仮想環境を作成するには次のコマンドを実行します。
virtualenv env1
これを実行すると、環境名 (ここでは env1) のディレクトリが作成され、それ以下に必要なコマンドが作成されます。
仮想環境のインタープリタのバージョンを指定
明示的に仮想環境のインタープリタのバージョンを指定するには、 環境の作成時に -p オプションを指定します。
例えば Python3.6 の環境を指定して、foo という名前の環境を作成するには次のようにします。
virtualenv -p python3.6 foo
Virtualenv 仮想環境の有効化
作成した環境を使うには、仮想環境を有効化します。有効化するには次のコマンドです。
source <環境名>/bin/activate
あるいは source コマンドの省略形の . (ドット) を使って次のようにしてもいいです。
. <環境名>/bin/activate
要は環境を作ったときに作成されるディレクトリ内に bin ディレクトリがあり、 その中に有効化のためのスクリプトの activate が作成されます。それを実行すればいいのです。
例: env1 という名前の環境を作成したら、次のコマンドです。
. env1/bin/activate
Virtualenv 仮想環境から出る
Virtualenv 仮想環境から出る (終了する)には次のコマンドです。
deactivate
Virtualenv コマンド例
では、実際に Virtualenv のコマンドを実行してみましょう。
まずは virtualenv を実行する前の python3 インタープリタのパスを確認しておきます。
which python3
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3
さて、virtualenv で env1 という名前の環境を作成します。
virtualenv env1
created virtual environment CPython3.8.0.final.0-64 in 2005ms
...
引き続き、env1 を有効化します。有効化するには作成された bin ディレクトリ以下の activate を呼びます。
. env1/bin/activate
この状態でもう一度 python3 のパスを確認します。
which python3
/Users/user1/test/env1/bin/python3
はじめに確認した python3 のパスと異なり、仮想環境内のコマンドが参照されていることがわかります。
次のコマンドで仮想環境から抜けます。
deactivate
もう一度 python3 のパスをみるとまたもとのシステムワイドのパスに戻ってます。
which python3
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3
このように仮想環境内にいるときは、ライブラリやパッケージの類を pip などでインストールすれば仮想環境専用のディレクトリ以下にインストールされます。
以上で Virtualenv の基本的な使用方法について説明しました。
Python の IDE である PyCharm では、Python プロジェクトを作成するとデフォルトの設定で自動的に virtualenv の仮想環境を作成してくれるのでとても便利です。