Python VirtualEnv

提供: ArchWiki
2015年12月23日 (水) 19:51時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

virtualenv は Ian Bicking によって書かれた Python ツールで、Python の隔離環境を作成するのに使われます。他の virtualenv やシステムの Python パッケージに煩わされることなくパッケージをインストールすることができます。この記事では virtualenv パッケージのインストールと、パッケージに付随しているコマンドラインユーティリティ virtualenvwrapper について扱っています。virtualenvwrapper はワークフローを改善するために Doug Hellmann によって作成されました。仮想環境の中で作業を開始するクイックハウツーも記載しています。

仮想環境の概要

virtualenv はプロジェクトに必要な様々なバージョンの管理や、パッケージの依存関係に対処しなくてはならない問題を解決するために作られたツールです。例えば、あなたが Django によるウェブサイトを2つ作成するとして、片方は Django 1.2 が必要なのにもう一方は古き良き 0.96 を必要とする場合を考えて下さい。両方を /usr/lib/python2/site-packages にインストールして両方のバージョンを利用することはできません。virtualenv があればそれが可能です。隔離環境を2つ作成して、開発環境を2つにすれば上手くいきます。

vitualenvwrapper はお気に入りのコンソールから実行できる便利なコマンドを提供することで virtualenv をさらに一歩先に進めます。

venv はバージョン 3.3 で追加された ビルトインモジュール で、virtualenv と同じような API を実装しています。

Virtualenv

virtualenv は Python 2.6+ と Python 3.x をサポートしています。Python のバージョンの違いについては Python#Python 3 を見て下さい。

インストール

python-virtualenv あるいは (旧バージョンの) python2-virtualenvインストールしてください。

基本的な使い方

virtualenv でサンドボックスを作成する高度なチュートリアルは こちら にあります。リンクが辿れない場合、アーカイブのリンク を見て下さい。シンプルな使い方は以下のようになります:

  • virtualenv を作成:
$ virtualenv my_env
  • virtualenv を有効化:
$ source my_env/bin/activate
  • virtualenv の中にパッケージをインストール (例: Django):
(my_env)$ pip install django
  • 作業を行う
  • virtualenv を離れる:
(my_env)$ deactivate

Virtualenvwrapper

virtualenvwrapper は virtualenv を作成・有効化・削除する便利なコマンドを使えるようにして、より自然なコマンドライン操作で virtualenv を扱えるようにします。python-virtualenvpython2-virtualenv 両方のラッパーになっています。

インストール

公式リポジトリから python-virtualenvwrapper パッケージをインストールしてください。

そして ~/.bashrc に以下の行を追加:

export WORKON_HOME=~/.virtualenvs
source /usr/bin/virtualenvwrapper.sh

python3 をデフォルトにしていない場合 ($ python --version の出力を確認してください)、virtualenvwrapper.sh スクリプトを source する前に ~/.bashrc に以下の行も追加する必要があります。現行バージョンの virtualenvwrapper-python パッケージは python3 でのみ動作します。ただし python2 の virtualenv を作成することは問題なく可能です。

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

コンソールを再度開いて WORKON_HOME フォルダを作成してください:

$ mkdir $WORKON_HOME

基本的な使い方

virtualenvwrapper の使い方に関しては Doug Hellmann の ページ が参考になります。

  • virtualenv を作成:
$ mkvirtualenv -p /usr/bin/python2.7 my_env
  • virtualenv の有効化:
$ workon my_env
  • virtualenv の中にパッケージをインストール (例: Django):
(my_env)$ pip install django
  • 作業を行う
  • virtualenv を離脱:
(my_env)$ deactivate

参照