アメリエフの技術ブログ

Amelieff Staff Blog

venvでPython仮想環境を構築

f:id:adachit:20210825221139p:plain

こんにちは、adachitです。
今回はPython 3.4以降より実装されている仮想環境構築ツールの「venv」についてご紹介していこうと思います。

実行環境

Mac OS : Big Sur (version 11.4)
Python : 3.9.4

仮想環境構築の作り方

まず、python-m venvのオプションコマンドを付け、仮想環境名を入力し実行します。 今回は、amelieffという名前の仮想環境を作成してみます。

adachit@amelieffnoMacBook-Pro % python -m venv amelieff
adachit@amelieffnoMacBook-Pro % ls
amelieff

上記コマンドを実行すると、実行したディレクトリに指定した名前のディレクトリが作成されます。
次に作成した仮想環境を有効にします。
sourceコマンドでamelieff/bin/activateを選択し実行します。

adachit@amelieffnoMacBook-Pro % source amelieff/bin/activate
(amelieff) adachit@amelieffnoMacBook-Pro %

上記コマンドを実行すると、左側に(amelieff)が追加されます。
これで作成した仮想環境の構築が有効になりました。
この状態でpip listを実行すると、最低限のモジュールだけが存在し、ローカルとは切り離された環境であることが分かります。

(amelieff) adachit@amelieffnoMacBook-Pro % pip list
Package    Version
---------- -------
pip        20.2.3
setuptools 49.2.1

仮想環境を終了する場合、deactivateを実行します。

(amelieff) adachit@amelieffnoMacBook-Pro % deactivate
adachit@amelieffnoMacBook-Pro % 

実行が完了すると、(amelieff)がなくなりローカルの環境に戻ります。
実際にpip listを実行し、ローカルの環境に戻っていることを確認します。

adachit@amelieffnoMacBook-Pro % pip list
Package    Version
---------- -------
pip        20.2.3
selenium   3.141.0
setuptools 49.2.1
urllib3    1.26.6

仮想環境には無かったseleniumurlib3が確認できました。

Anacondaとの違い〜 venvかAnacondaか

ローカルにPythonがある環境で、Python仮想環境を使いたい場合、venvを使うべきか、Anacondaをインストールして使うべきかについて説明します。
結論から言いますと、「venv」を使用することをおすすめします。
理由は、Anacondaのインストールによって、ローカルとAnacondaの間でPythonの競合が生じ、既存の環境を壊してしまう可能性があるからです。
一方でvenvは、ローカルのPythonを使用し動作するので、このような競合は生じません。
しかし、仮想環境でPythonモジュール以外のツールをインストールしたい場合は、Anacondaでなければできません。
これらのメリット・デメリットを踏まえ、ケース・バイ・ケースで使い分けをするのがいいかと思います。