【Python】仮想環境 ~ pyenv / virtualenv / venv / pipenv ~

■ はじめに

https://docs.python.org/ja/3/tutorial/venv.html#managing-packages-with-pip

で「12章 仮想環境とパッケージ」の
仮想環境があいまいだったので、まとめる

資格「Python 3 エンジニア認定基礎試験」の出題範囲にもなっている。

■ 導入

PythonアプリAがモジュールX(ver1.0) を必要とし、
PythonアプリBがモジュールX(ver2.0。I/Fがver1.0と異なる) を必要とした場合
通常、同じ環境内に入れられない。
 => この問題に関する解決策として、「仮想環境」がある

■ 仮想環境

# venv : 仮想環境の作成と管理を行うためのモジュール
python3 -m venv [仮想環境ディレクトリ]

■ 仮想環境の作成方法

【1】 pyenv
【2】 virtualenv
【3】 venv
【4】 pipenv

【1】 pyenv

設定

# pyenvインストール
git clone https://github.com/yyuu/pyenv.git ~/.pyenv

# 環境編の設定
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

# bash_profile を適用
source ~/.bash_profile

# pyenvへのPythonのインストール
pyenv install 3.6.10

# 全ディレクトリのPythonの切り替え
pyenv global 3.6.10

# pyenv version確認
pyenv versions

# Python version確認 (v3.6.10 になっているはず)
python --version

参考文献
https://www.python-izm.com/tips/pyenv/
https://note.com/npaka/n/n597d1cea0432

【2】 virtualenv

* 標準ではないのでpipインストール必要

# 仮想環境作成
virtualenv --no-site-packages democlient

有効化 / 無効化

* 仮想環境を有効化 / 無効化する必要があるので、その方法を記す。

【有効化】
# Windows
demo-env\Scripts\activate.bat

# Linux
source demo-env/bin/activate

【無効化】
# 仮想環境終了(通常状態に復帰)
deactivate

【3】 venv

* virtualenv が Python 3.3 から標準機能として取り込まれたもの

python3 -m venv demo-env

【4】 pipenv

* プロジェクト毎のパッケージ管理や仮想環境の構築を簡単に自動で行ってくれる
* pipenv = virtualenv + pip

関連記事

CodeBuild で Python のバージョンを切り替える
https://dk521123.hatenablog.com/entry/2020/02/19/230909
パッケージ管理 ~ pip / wheel, egg ~
https://dk521123.hatenablog.com/entry/2019/11/09/001342
オフライン環境下で pip install するには
https://dk521123.hatenablog.com/entry/2021/07/10/164833
eggファイルを作成するには...
https://dk521123.hatenablog.com/entry/2020/02/09/234350
Python に関する資格
https://dk521123.hatenablog.com/entry/2019/12/17/225829
pip install wheelファイル で Read time out が発生する
https://dk521123.hatenablog.com/entry/2021/07/08/161406