![見出し画像](https://assets.st-note.com/production/uploads/images/85039910/rectangle_large_type_2_1382de42b46ec9ea9f0c572f2dc9fa1d.jpeg?width=1200)
Python基礎10:仮想環境(venv/pipenv/conda)
1.緒言
(多言語でも同じですが)PythonではPython本体やライブラリ同士のVersion管理が必須でありVersionが異なると動作しないものがたくさんあります。
例としてDeepLearningで有名なPytorchのVersion1.10系はPython 3.10がサポート対象外です。よってPythonのVersionを最新のものにしたとたんに動かなくなったりします。
このようなトラブルを回避するために専用の環境「仮想環境」を作成することで他環境に影響を与えずにVesion管理・開発が可能となります。
2.Pythonライブラリ:pipenv
仮想環境を作成するPythonライブラリpipenvは下記にまとめました。
3.標準ライブラリ:venv
Pythonの標準ライブラリであるvenvを使用して仮想環境を作成します。個人的には"pipenv"の方が使いやすいです。
3-1.環境構築1:仮想環境の初期化
仮想環境の作成は”python -m venv <仮想環境名>”コマンドを実行します。実行後は指定した仮想環境名のフォルダが作成されます。
Windowsは"<仮想環境>/Scripts"の中にPython本体周りのファイルが格納されています(Macはbin)。仮想環境を有効化することで本環境が優先的に使用されることで動く仕組みになっています。
[Terminal]
python -m venv note_virenv
![](https://assets.st-note.com/img/1660891545014-UWpqRul2Qr.png?width=1200)
![](https://assets.st-note.com/img/1660891678783-H4LbezjeRy.png?width=1200)
3-2.仮想環境へのログイン
仮想環境へのログインは". <仮想環境名>/Scripts/Activate"で実行します。頭の"."は"source"でも実行可能です。
Windows環境でターミナルは”Anaconda Prompt”だとエラーが出たため"Windows Powershell"を使用しました。
[Terminal(Windows)]
. note_virenv/Scripts/Activate
[Terminal(Mac)]
. note_virenv/bin/activate
ターミナルの頭に仮想環境名がついていれば成功です。
![](https://assets.st-note.com/img/1660892559833-gXnpIIGsB8.png?width=1200)
下記コマンドを実行すれば通常と異なる環境であることを確認できます。
[Terminal]
python --version
pip list
[OUT]
Python 3.8.12
Package Version
---------- -------
pip 21.1.1
setuptools 56.0.0
3-3.ライブラリのインストール
ライブラリのインストールは仮想環境にログイン(有効化)の状態で通常通り"pip install <ライブラリ名>"で対応可能です。
[Terminal]
pip install numpy
[IN]
pip list
[OUT]
Package Version
---------- -------
numpy 1.23.2
pip 22.2.2
setuptools 56.0.0
”requirements.txt"を作成済みであれば下記でも実行可能です。
[Terminal]
pip install -r requirements.txt
【pipのVersion更新】
”pipのVersionが古い”エラーが出た場合は下記コマンドで対応できます。
python -m pip install --upgrade pip
3-4.仮想環境からログアウト
ログアウトする場合は”deactivate”コマンドを実行するだけです。
[Terminal]
deactivate
4.Anaconda
Anaconda環境を使用している方であれば仮想環境を作成できます。
4-1.CLIベース
4-1.GUIベース
5.Docker:コンテナ
PythonライブラリのVersionだけでなくOSなども含めて「コンテナ」という形で仮想環境を管理してくれるツールとしてDockerがあります。
別記事で紹介していますのでご参考までに。
参考資料
あとがき
先出