Posted at

【Python】仮想環境の作成のしかた

More than 1 year has passed since last update.

最近、Pythonでもくもくやりはじめたので、備忘としてまとめる。

今回は、以下のサイトを参考にしている。

[Python] venvを用いてプロジェクトごとに独立した環境を構築する


1.はじめに



  • venv というツールを使用することで仮想環境を構築することができる

  • プロジェクトごとにsite-pakcagesを独立して管理できる

  • Python3.3から公式に組み込まれている


2.Pythonで使える仮想環境ツール

今回、取り扱うのは venv ですが、それ以外にもいくつか仮想環境ツールが存在している。


  • pyenv

  • venv

  • virtualenv

ちょっと時間がないので、それぞれのツールの深掘りは割愛する。


3.使用方法


3.1.環境構築

Hoge-MBA:Python_work Hoge$ pwd

/Users/Hoge/Python_work
Hoge-MBA:Python_work Hoge$ ll
Hoge-MBA:Python_work Hoge$
Hoge-MBA:Python_work Hoge$ python -m venv env001
Hoge-MBA:Python_work Hoge$
Hoge-MBA:Python_work Hoge$ ll
total 0
drwxr-xr-x 6 Hoge staff 192 6 8 12:05 env001
Hoge-MBA:Python_work Hoge$
Hoge-MBA:Python_work Hoge$ ll env001/
total 8
drwxr-xr-x 12 Hoge staff 384 6 8 12:06 bin
drwxr-xr-x 2 Hoge staff 64 6 8 12:05 include
drwxr-xr-x 3 Hoge staff 96 6 8 12:05 lib
-rw-r--r-- 1 Hoge staff 75 6 8 12:05 pyvenv.cfg
Hoge-MBA:Python_work Hoge$

※上記のコマンドを実行だけでは、仮想環境は有効化されていない


3.2.仮想環境の有効化

以下のコマンドは、有効化したい仮想環境ディレクトリ配下で実施すること。

Hoge-MBA:Python_work Hoge$ cd env001/

Hoge-MBA:env001 Hoge$ pwd
/Users/Hoge/Python_work/env001
Hoge-MBA:env001 Hoge$
Hoge-MBA:env001 Hoge$ ll
total 8
drwxr-xr-x 12 Hoge staff 384 6 8 12:06 bin
drwxr-xr-x 2 Hoge staff 64 6 8 12:05 include
drwxr-xr-x 3 Hoge staff 96 6 8 12:05 lib
-rw-r--r-- 1 Hoge staff 75 6 8 12:05 pyvenv.cfg
Hoge-MBA:env001 Hoge$
Hoge-MBA:env001 Hoge$ source ./bin/activate
(env001) Hoge-MBA:env001 Hoge$
(env001) Hoge-MBA:env001 Hoge$ which python
/Users/Hoge/Python_work/env001/bin/python
(env001) Hoge-MBA:env001 Hoge$
(env001) Hoge-MBA:env001 Hoge$ which pip
/Users/Hoge/Python_work/env001/bin/pip
(env001) Hoge-MBA:env001 Hoge$

※仮想環境が有効化されると、行頭に (env001) などと環境名が表示される

※有効化後は、普通通りの使い方と同じ


3.3.仮想環境の無効化(脱出)

(env001) Hoge-MBA:env001 Hoge$ deactivate

Hoge-MBA:env001 Hoge$
Hoge-MBA:env001 Hoge$ which python
/Users/Hoge/anaconda3/bin/python
Hoge-MBA:env001 Hoge$
Hoge-MBA:env001 Hoge$ which pip
/Users/Hoge/anaconda3/bin/pip
Hoge-MBA:env001 Hoge$