ライブラリ:virtualenvwrapper

Pythonのコマンドラインツールである「virtualenvwrapper」についてご紹介します。

virtualenvwrapper とは、その名前のとおり virtualenv の wrapper で、便利な virtualenv をより使いやすくしてくれるツールです。ちなみにWindowsには対応しておらず、LinuxとMac限定のツールとなっています。

以下に、特徴と初期設定、基本的な使い方を説明します。

特徴

virtualenvwrapper の特徴として次の6つが公式ドキュメントにあげられています(意訳です)。

  • すべての virtualenv 環境を一元管理できる
  • 便利な各種コマンド
  • 環境の切り替えがコマンドひとつで
  • タブによるコマンド補完
  • カスタマイズ可能なフック
  • 拡張機能も自由に開発可

初期設定

まずは virtualenvwrapper そのものをインストールします。その前に virtualenv がインストールされていなければ先にインストールしておきます。

pipがインストールされていれば virtualenvwrapper のインストールは pip install で可能です。

$ pip install virtualenvwrapper

インストールが完了したら virtualenvwrapper を有効化します。具体的には、環境変数 WORKON_HOME を設定し、 virtualenvwrapper.sh を実行します。

$ export WORKON_HOME=$HOME/.virtualenvs
$ source (適切なパス)/virtualenvwrapper.sh

ここで、 WORKON_HOME は virtualenv 環境を一元管理するディレクトリを指定するための変数です。ここではユーザホーム直下の .virtualenvs というディレクトリを使っていますが、場所はどこにおいても大丈夫です。管理の都合を考えると $HOME 直下に専用のディレクトリを作ってそこにまとめるのがよろしいかと思います。

virtualenvwrapper.sh は virtualenvwrapper を有効化するためのシェルスクリプトです。システムのPythonと同じディレクトリに virtualenvwrapper を入れた場合は /usr/local/bin あたりにあることが多いようです。

ここまで無事に準備が済んでいれば「workon」コマンドが使えるようになっています。 $ workon --help

ちなみに、この WORKON_HOME の設定と virtualenvwrapper.sh の読み込みのコマンドは、いつでも使えるようにターミナルの起動スクリプト(.bashrc など)に入れておくと便利です。

基本的な使い方

基本的な使い方として、virtualenv 環境の作成、一覧、切り替え、削除などを見ていきます。

virtualenv 環境の作成は mkvirtualenvwrapper コマンドを使います。

$ mkvirtualenvwrapper 環境名

数多くのオプションがあるため、詳しくは公式ドキュメントの該当箇所をご覧ください。オプションの一部としては、次のようなものがあります。

  • --python=使用するPythonへのパス 使用するPythonのバージョンを指定する
  • --no-site-packages グローバルのパッケージは使わない設定にする

mkvirtualenvwrapper で環境の作成に成功したら、自動的にその環境が有効化されます。どの環境が有効化されているかはターミナルのプロンプトよりわかります。プロンプトの先頭に (環境名) が付いていればその環境に入っている証拠となります。

これまでに作成され現在も存在する環境を一覧するには workon コマンドを使います。

$ workon

virtualenv 環境を複数作っている場合の環境の切り替えも workon コマンドで行います。

$ workon 環境名

有効化された環境から抜けるには deactivate コマンドを使います。

$ deactivate

最後に、環境の削除方法について。存在する環境を削除するには rmvirtualenv コマンドを使います。

$ rmvirtualenv 環境名

基本的な操作はこの4つのコマンドを押さえておけば大丈夫かと思います。ただ、この他にも豊富なコマンドが用意されているので、もっと詳しく知りたい方は公式のコマンドリファレンスをご覧ください。

以上です。

参考

virtualenvwrapper:

Macでシステム以外のPythonをメインで使う設定にしたい場合は、こちらのページがたいへんわかりやすく参考になります。