
Pythonライブラリ(仮想環境):pipenv
1.概要
(多言語でも同じですが)PythonではPython本体やライブラリ同士のVersion管理が必須でありVersionが異なると動作しないものがたくさんあります。
例としてDeepLearningで有名なPytorchのVersion1.10系はPython 3.10がサポート対象外です。よってPythonのVersionを最新のものにしたとたんに動かなくなったりします。
このようなトラブルを回避するために専用の環境「仮想環境」を作成することで他環境に影響を与えずにVesion管理・開発が可能となります。
今回は仮想環境を作成するライブラリであるpipenvを紹介します。ライブラリはターミナルで下記コードを実行してインストールします。
[Terminal]
pip install pipenv2.仮想環境の作成
まずは作業するための仮想環境を作成していきます。
2-1.仮想環境の初期化×pythonのDL
cdコマンドで作業ディレクトリに移動してpythonをインストール実行します。注意点として「ディレクトリ(フォルダ)名=仮想環境名」となるためフォルダ名は見やすい名前が良いです。
なお私はAnaconda Promptから実行しましたが、Anacondaに入っていないVersionをインストールしようとするとエラーがでました。
[Terminal]
cd <作業ディレクトリ=仮想環境>
pipenv --python <version>
成功するとPipfileが自動で作成されます。

【環境チェック】
この時点でIDE(下記はVS CODE)から作成した仮想環境が選択できます。Pythonはインストールされたため使用できますがライブラリは何も入れていないため使用不可です。


2-2.ライブラリインストール:requirements.txt
必要なライブラリをインストールします。"requirements.txt"を使用するため下図の通りファイルを作成しました。
[requirements.txt]
numpy
ipykernel
作成後に作業ディレクトリで"pipenv install -r requirements.txt"を実行すして"Pipfile.lock"が作成されれば成功です。
[Terminal]
pipenv install -r requirements.txt[OUT]
Requirements file provided! Importing into Pipfile...
Pipfile.lock not found, creating...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
Success!
Locking [dev-packages] dependencies...
Updated Pipfile.lock (fa22a2)!
Installing dependencies from Pipfile.lock (fa22a2)...
================================ 1/1 - 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
(base) C:\Users\KIYO\Desktop\note\01_Python基礎\note_python基礎10_仮想環境> 
先ほどまではエラーだった下記コードが問題なく実行できました。
[IN]
import numpy as np
np.array(1)
[OUT]
array(1)なお追加でライブラリをインストールする場合は"pipenv install <ライブラリ>"で対応可能です。
[Terminal]
pipenv install pandas3.仮想環境へログイン/ログアウト
仮想環境へのログイン方法はIDEベースとCLIベースがあります。
3ー1.IDE
IDEではPythonの環境を選択できます。下図はVS CODEの例ですが右上のエリアを押すと環境を切り替えることが出来ます。

3ー2.CLI:pipenv shell
CLIベースで操作する場合は作業ディレクトリ(PipfileやPipfile.lockがある箇所)に移動して"pipenv shell"を実行するとログインできます。ターミナルの頭に仮想環境名が出ていれば成功です。
ログアウトする場合は"exit"であり、ターミナルの頭から仮想環境名が消えていれば成功です。
[Terminal:ログイン]
pipenv shell[Terminal:ログアウト]
exit4.環境の削除:pipenv --rm
仮想環境の削除は作業ディレクトリ上で”pipenv --rm”を実行します。フォルダやPipfileは残りますが仮想環境が選択できなくなり削除されました。
フォルダが不要な場合はコマンド実行後にフォルダを手動で削除します。
[Terminal]
pipenv --rm
参考資料
あとがき
とりあえず分離、Anacondaの仮想環境の方をメインで使いそうだけどPipfileをやり取りするだけで別のPCでも簡単に環境構築できる(できそう)なのはありがたい。