Python/仮想環境

提供: ArchWiki
2020年12月3日 (木) 13:03時点におけるKgx (トーク | 投稿記録)による版 (英語版と同期してPipenvを翻訳して追加)
ナビゲーションに移動 検索に移動

virtualenvPython の隔離環境を作成するために使われるツールです。モジュールを隔離環境にインストールできる、作業環境をエクポートできる、Python プログラムをその環境で実行できるといった様々な利点があります。

仮想環境の概要

仮想環境はいくつかのバイナリとシェルスクリプトがインストールされたディレクトリです。バイナリはスクリプトを実行するための python と 環境に他のモジュールをインストールするための pip を含んでいます。また環境に入るためのシェルスクリプト (bash、csh、fishで動作します) も含まれています。基本的に、仮想環境はシステムにインストールされた Python とすべての望まれたモジュールを、アプリケーションがどんなシステム上で動作しようと干渉されずに模倣します。

インストール

Python 3.3 以上では pyvenv と呼ばれるツールとネイティブ実装を拡張するための venv と呼ばれる API が付属しています。古いバージョンの Python を必要とするアプリケーションでは virtualenv を使う必要があります。

パッケージ

Python の仮想環境を利用するために 公式リポジトリ から次のパッケージをインストールしてください。

使い方

3つのツールの使い方は似ています。

作成

あなたのプロジェクトディレクトリ内で pyvenvvirtualenv を使って仮想環境を作成してください。必ず venv ディレクトリをバージョン管理から外してください。pip freeze のコピーがあればリビルドすることができます。

pyvenv

このツールは python (3.3 以上) で提供されています。

$ pyvenv venv

python 3.6 から pyenv スクリプトは非推奨になりました。上記のコマンドは以下のように実行するようにしてください:

$ python -m venv venv

virtualenv

Python 3 には python-virtualenv に含まれる virtualenv を使ってください。

$ virtualenv venv

Python 2 には python2-virtualenv に含まれる virtualenv2 を使ってください。

$ virtualenv2 venv

有効化

環境を有効化・無効化するために提供されているシェルスクリプトを使います。この例は bash が使われていると仮定します。

$ source venv/bin/activate
(venv) $

仮想環境の中に入ると、pip を使ってモジュールをインストールしたり通常通りにスクリプトを実行することができます。

仮想環境から抜けるには bin/activate によって提供される関数を実行してください:

(venv) $ deactivate

Python のバージョン

バイナリのバージョンはどの仮想環境ツールが使われたかに依存します。例えば、Python 2 の例では python コマンドは bin/python2.7 を指しますが、pyvenv の例では bin/python3.5 を指します。

pyvenvvirtualenv 大きな違いは、前者はデフォルトでシステムの Python バイナリを使います:

$ ls -l pyvenv/bin/python3.5
lrwxrwxrwx 1 foo foo 7 Jun  3 19:57 pyvenv/bin/python3.5 -> /usr/bin/python3

virtualenv は環境のディレクトリ内の別の Python バイナリを使います:

$ ls -l venv3/bin/python3.5
lrwxrwxrwx 1 foo foo 7 Jun  3 19:58 venv3/bin/python3.5 -> python3

Virtualenvwrapper

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

インストール

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

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

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

Python 3 が Arch においてシステムのデフォルトなので、Python 2 の環境を作るためには ~/.bashrcvirtualenvwrapper.sh を読み込む前に VIRTUALENVWRAPPER_PYTHONVIRTUALENVWRAPPER_VIRTUALENV をセットする必要がります:

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv2

Python 3 をデフォルトにしていない場合 ($ python --version の出力を確認してください)、virtualenvwrapper.sh スクリプトを source する前に ~/.bashrc に以下の行も追加する必要があります。

export 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

Pipenv

pipenv は上記のツールのすべての機能を実行する単一のプログラムを提供することで、より良い管理された CLI 対話を可能にします。

インストール

公式リポジトリpython-pipenv パッケージを インストール します。

基本的な使い方

​すべてのコマンドはプロジェクトフォルダ内で実行でき、 pipenv は特定の状況を認識します。つまり、 pipenv が実行されると、ディレクトリ内に virtualenv が存在するかどうかを調べ、特定の仮想インタプリタ上で実行されます。

​詳細については、 [1] [2] [3] を参照してください。

参照