Python

venv: Python 仮想環境管理

venv について

  • venv は virtualenv が Python 3.3 から標準機能として取り込まれたもの.別途ソフトウェアをインストールすることなく使用できるため,最も手軽に仮想環境を管理する方法の一つと言える.pip によるパッケージの導入状態をプロジェクトごとに独立させることができる.
  • Python 3.x.x 下に組み込まれた機能なので,Python 自体のバージョンは管理できない.
    • virtualenv では Python 自体のバージョン隔離とパッケージ導入状態の両方を管理可能
    • pyenv で Python のバージョンの隔離,venv でパッケージの隔離という使い方は可能
  • venv と同等な py”v”env というものがあるが,最新情報では pyvenv は非推奨となっているので,venv を利用するのが良い.

注釈 pyvenv スクリプトは Python 3.6 で非推奨となり、代わりに python3 -m venv を使い、仮想環境を動かす Python インタープリタを取り違える可能性を防ぎやすくします。
28.3. venv — 仮想環境の作成

環境

$ python -V
Python 2.7.10

$ python3 -V
Python 3.6.1

手順

新しい環境の作成

$ cd [project dir]
$ python3 -m venv [newenvname]

venv という名前でプロジェクトディレクトリ直下に作成しておく($ python3 -m venv venv)のが良い.ディレクトリ移動 → venv アクティベート → 作業 という流れができたり,IDE によっては 1 つのプロジェクト内でソースコードと一緒に venv も管理できるので.

Activate

Linux,Mac

$ source [newenvname]/bin/activate

もしくは

$ . [newenvname]/bin/activate

Windows

$ .\[newenbname]\Scripts\activate

python の実行・バージョン確認

([newenvname])$ python -V
Python 3.6.1

プロンプトの頭に環境名が表示されている間,python コマンドでは作成した環境の python が実行される.

2系と3系の両方がインストールされており,python3などと2系なのか3系なのかを明示することで使い分けている場合でも,venv をアクティベートすると python コマンドでは作成した環境のものが実行されるようになる.

パッケージのインストール

([newenvname])$ pip install [package name]

作成した環境にインストールされているパッケージの確認

([newenvname])$ pip freeze
[package name1]==x.x.x
[package name2]==x.x.x
・
・
・

グローバルにインストールされているものと作成した環境にインストールされているものが一覧表示される.

Linter など,どの環境でも必ず利用するパッケージはグローバルの環境にインストールし,場合によって利用したりしなかったりするパッケージは venv で作成した環境にインストールすると良い.

Deactivate

([newvenvname])$ deactivate

終了確認

$ python -V
Python 2.7.10