1319

この記事は最終更新日から3年以上が経過しています。

投稿日

更新日

venv: Python 仮想環境管理

venv について

  • venv を使うと pip によるパッケージの導入状態をプロジェクトごとに独立させることができる.
  • venv は virtualenv が Python 3.3 から標準機能として取り込まれたもの.別途ソフトウェアをインストールすることなく使用できるため,最も手軽に仮想環境を管理する方法の一つと言える.
    • 2 系を偶に使うという程度なら 3 系は venv,2 系は virtualenv で管理すると同じように管理できるので良い.

Since Python 3.3, a subset of it has been integrated into the standard library under the venv module.

Virtualenv — virtualenv 16.6.1 documentation

  • Python 3.x.x 下に組み込まれた機能なので,Python 自体のバージョンは管理できない.
  • venv と同等な py"v"env (≠pyenv) というものがあるが,Puthon 3.5 以降 pyvenv は非推奨となっている.

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

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

$ .\[newenvname]\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

([newenvname])$ deactivate

終了確認

$ python -V
Python 2.7.10

参考

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
ログインすると使える機能について
1319