Help us understand the problem. What is going on with this article?

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

参考

fiftystorm36
浅く広く投稿しています.
https://twitter.com/fiftystorm36
bitkey
独自のキーテクノロジーを武器に事業を展開するスタートアップベンチャー
https://bitkey.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした