コマンドリファレンス

全てのコマンドは次のようにターミナル上で使用されます。

仮想環境を管理する

mkvirtualenv

WORKON_HOME に新たな仮想環境を作成します。

構文:

mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME

-a, -i, -r, -h を除いた全てのコマンドラインオプションは virtualenv へ直接的に渡されます。新しい仮想環境は初期化された後に自動的にアクティブ化されます。

$ workon
$ mkvirtualenv mynewenv
New python executable in mynewenv/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(mynewenv)$ workon
mynewenv
(mynewenv)$

-a オプションは、既存のプロジェクトディレクトリに新しい環境を関連付けるのに使います。

-i オプションは、その環境を作成した後に指定したパッケージをインストールできます (このオプションを繰り返し使うことで複数のパッケージもインストールできます) 。

-r オプションは、インストールしたいパッケージ一覧を保存したテキストファイルを指定するのに使います。この引数のファイル名は pip -r へ渡されてインストールが行われます。

mktmpenv

WORKON_HOME ディレクトリに新しい環境を作成します。

構文:

mktmpenv [VIRTUALENV_OPTIONS]

一意な名前をもつ virtualenv 環境が生成されます。

$ mktmpenv
Using real prefix '/Library/Frameworks/Python.framework/Versions/2.7'
New python executable in 1e513ac6-616e-4d56-9aa5-9d0a3b305e20/bin/python
Overwriting 1e513ac6-616e-4d56-9aa5-9d0a3b305e20/lib/python2.7/distutils/__init__.py
with new content
Installing distribute...............................................
....................................................................
.................................................................done.
This is a temporary environment. It will be deleted when deactivated.
(1e513ac6-616e-4d56-9aa5-9d0a3b305e20) $

lsvirtualenv

全ての仮想環境を表示します。

構文:

lsvirtualenv [-b] [-l] [-h]
-b ブリーフモード、冗長な出力を無効にする
-l ロングモード、冗長な出力を有効にする(デフォルト)
-h lsvirtualenv のヘルプを表示する

See also

showvirtualenv

1つの仮想環境の詳細を表示します。

構文:

showvirtualenv [env]

See also

rmvirtualenv

WORKON_HOME の仮想環境を削除します。

構文:

rmvirtualenv ENVNAME

カレントの仮想環境を削除する前に deactivate を実行しなければなりません。

(mynewenv)$ deactivate
$ rmvirtualenv mynewenv
$ workon
$

cpvirtualenv

WORKON_HOME の仮想環境を複製します。

構文:

cpvirtualenv ENVNAME TARGETENVNAME

Note

コピー操作で作成された仮想環境は 再配置可能 です。

$ workon
$ mkvirtualenv source
New python executable in source/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(source)$ cpvirtualenv source dest
Making script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/easy_install relative
Making script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/easy_install-2.6 relative
Making script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/pip relative
Script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/postactivate cannot be made relative (it's not a normal script that starts with #!/Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/python)
Script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/postdeactivate cannot be made relative (it's not a normal script that starts with #!/Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/python)
Script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/preactivate cannot be made relative (it's not a normal script that starts with #!/Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/python)
Script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/predeactivate cannot be made relative (it's not a normal script that starts with #!/Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/python)
(dest)$ workon
dest
source
(dest)$

アクティブな仮想環境を制御する

workon

作業する仮想環境を変更、または表示します。

構文:

workon [environment_name]

environment_name が与えられない場合は標準出力に利用可能な仮想環境を表示します。

$ workon
$ mkvirtualenv env1
  New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ mkvirtualenv env2
New python executable in env2/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env2)$ workon
env1
env2
(env2)$ workon env1
(env1)$ echo $VIRTUAL_ENV
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1
(env1)$ workon env2
(env2)$ echo $VIRTUAL_ENV
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env2
(env2)$

deactivate

仮想環境からシステムにインストールされた Python のバージョンに切り替えます。

構文:

deactivate

Note

このコマンドは、実際は virtualenv の一部ですが、まさに workon が行うようにアクティブ化のために、処理の前後にフック機能を提供するためにラップされます。

$ workon
$ echo $VIRTUAL_ENV

$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ echo $VIRTUAL_ENV
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1
(env1)$ deactivate
$ echo $VIRTUAL_ENV

$

仮想環境へ簡単に移動する

カレントのアクティブ化された仮想環境内へ移動するためのショートカットを提供する2つの機能があります。

cdvirtualenv

$VIRTUAL_ENV へカレントワークディレクトリを移動します。

構文:

cdvirtualenv [subdir]

cdvirtualenv を呼び出すと、カレントワークディレクトリを仮想環境($VIRTUAL_ENV)のトップへ移動します。オプションの引数はそのパスに追加されて、サブディレクトリへ直接的に移動することもできます。

$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ echo $VIRTUAL_ENV
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1
(env1)$ cdvirtualenv
(env1)$ pwd
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1
(env1)$ cdvirtualenv bin
(env1)$ pwd
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1/bin

cdsitepackages

$VIRTUAL_ENVsite-packages へカレントワークディレクトリを移動します。

構文:

cdsitepackages [subdir]

仮想環境の site-packages ディレクトリへの正確なパスは Python のバージョンに依存するので、 cdsitepackagescdvirtualenv lib/python${pyvers}/site-packages のショートカットです。さらにオプションの引数は直接移動する site-packages 内の階層構造のディレクトリを指定することもできます。

$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ echo $VIRTUAL_ENV
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1
(env1)$ cdsitepackages PyMOTW/bisect/
(env1)$ pwd
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1/lib/python2.6/site-packages/PyMOTW/bisect

lssitepackages

lssitepackages を呼び出すと、カレントのアクティブ化された仮想環境の site-packages ディレクトリのコンテンツを表示します。

構文:

lssitepackages
$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ $ workon env1
(env1)$ lssitepackages
distribute-0.6.10-py2.6.egg     pip-0.6.3-py2.6.egg
easy-install.pth                setuptools.pth

パス管理

add2virtualenv

カレントのアクティブ化された仮想環境の Python パスへ指定したディレクトリを追加します。

構文:

add2virtualenv directory1 directory2 ...

システムの site-pacakges ディレクトリに存在しないインストール済みのパッケージやそれぞれの仮想環境にインストールしたくないパッケージを共有したいときがあります。1つの解決方法はその仮想環境の site-packages ディレクトリへシンボリックリンクを張ることです。しかし、 add2virtualenv を使用して site-packages 内の .pth ファイルへそういったパッケージを含めることで、PYTHONPATH へ拡張ディレクトリを追加することも簡単です。

  1. Django のような、大きなプロジェクトのソースをチェックアウトする
  2. add2virtualenv path_to_source を実行する
  3. add2virtualenv を実行する
  4. 使用方法とカレントの “拡張された” パスリストが表示される

site-packages ディレクトリ内の virtualenv_path_extensions.pth と名付けられたパスファイルへそのディレクトリ名が追加されます。

James Bennett と Jannis Leidel から提供されたものに基づいています。

toggleglobalsitepackages

アクティブな virtualenv が、グローバルの Python site-packages ディレクトリにあるパッケージにアクセスさせるかどうかを制御します。

構文:

toggleglobalsitepackages [-q]

実行すると virtualenv の更新後の状態を表示します。非表示にするには -q を指定してください。

$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ toggleglobalsitepackages
Disabled global site-packages
(env1)$ toggleglobalsitepackages
Enabled global site-packages
(env1)$ toggleglobalsitepackages -q
(env1)$

プロジェクトディレクトリの管理

mkproject

PROJECT_HOME にプロジェクトディレクトリと WORKON_HOME に新しい virtualenv を作成します。

構文:

mkproject [-t template] [virtualenv_options] ENVNAME

テンプレートオプションは、新しいプロジェクトを作成するのに使うテンプレートを複数指定できます。テンプレートはコマンドラインで指定した順番で適用されます。その他の全てのオプションは、プロジェクトと同じ名前をもつ仮想環境を作成するために mkvirtualenv に渡されます。

$ mkproject myproj
New python executable in myproj/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
Creating /Users/dhellmann/Devel/myproj
(myproj)$ pwd
/Users/dhellmann/Devel/myproj
(myproj)$ echo $VIRTUAL_ENV
/Users/dhellmann/Envs/myproj
(myproj)$

setvirtualenvproject

既存の virtualenv を既存のプロジェクトに束縛します。

構文:

setvirtualenvproject [virtualenv_path project_path]

setvirtualenvproject への引数は、virtualenv とプロジェクトディレクトリへのフルパスです。仮想環境のアクティブ化を workon で行うときに、そのプロジェクトもアクティブ化されるように連携します。

$ mkproject myproj
New python executable in myproj/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
Creating /Users/dhellmann/Devel/myproj
(myproj)$ mkvirtualenv myproj_new_libs
New python executable in myproj/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
Creating /Users/dhellmann/Devel/myproj
(myproj_new_libs)$ setvirtualenvproject $VIRTUAL_ENV $(pwd)

引数を指定しない場合は、カレントの virtualenv とカレントディレクトリが指定されたと見なします。

任意の数の virtualenv が、Python またはその他のテスト向けの依存関係をもったバージョン間で切り替えやすいように、同じプロジェクトディレクトリを参照できます。

cdproject

カレントのワークディレクトリから、アクティブな virtualenv のプロジェクトディレクトリとして指定したディレクトリに変更します。

構文:

cdproject