pipenvは、pip(パッケージ管理)とvenv(仮想環境構築)をまとめて使えるツールになります。
pip : パッケージのインストールや管理を行うためのツール
venv : 同じシステムの中に異なるPythonの環境を構築することができるツール。
pipenvを使用することで手元の環境を汚さずに開発することができる便利ツールです!
実行環境
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
目次
pipenvコマンド集
pipenvのインストール
$ pip install pipenv
仮想環境の作成
Pythonのバージョンを指定して作成すると、指定したバージョンの環境が作成される。
$ pipenv --python 3.9 // Python3.9の環境を作成する場合
パッケージのインストール
$ pipenv install { $パッケージ名 } // インストール
パッケージをインストールするとPipfileにパッケージが追加されます。
$ pipenv install pandas
またこのときにPipfile.lock
が自動で生成され、実際にインストールされたパッケージの詳細なバージョンや依存パッケージの情報などが記録されます。これをもとに他PCで環境を再現することができます。
GitHubにプッシュする際はPipfile
とPipfile.lock
も忘れないようにしましょう。
Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
pandas = "*"
[dev-packages]
[requires]
python_version = "3.8"
開発用パッケージのインストール
通常のパッケージのインストールの他に--dev
オプションを使うことで、開発環境のみで使うパッケージを別で管理しながらインストールすることができます。
$ pipenv install --dev autopep8 flake8
Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
pandas = "*"
[dev-packages]
autopep8 = "*"
flake8 = "*"
[requires]
python_version = "3.8"
requirements.txtからのインストール
requirements.txt
でパッケージが管理されていた場合、まとめて仮想環境にインストールすることができます。
$ pipenv install -r ./requirements.txt
パッケージのアンインストール
$ pipenv uninstall { $パッケージ名 } // アンインストール
仮想環境の出入り
$ pipenv shell // 仮想環境に入る
$ exit // 仮想環境から出る
仮想環境に入らずに仮想環境を利用して実行
$ pipenv run { $コマンド }
$ pipenv run python main.py
スクリプトの登録
Pipfile
[scripts]
main = "python main.py"
test = "python test.py -t param1 -u param2"
Pipfileでスクリプトを登録することができます。開発中に実行するコマンドをスクリプトに記述しておくと非常に楽になります。
$ pipenv run main
$ pipenv run test
ファイルから仮想環境の再現
Pipfileを元に環境を再現する場合は以下のコマンドになります。
$ pipenv install
$ pipenv install --dev # --devオプションで開発用のパッケージもインストールできます
Pipfile.lockを元に環境を再現する場合は以下のコマンドになります。Pipfile.lockは詳細なバージョンなども合わせて環境を再現することができます。
$ pipenv sync
$ pipenv sync --dev # --devオプションで開発用のパッケージもインストールできます
仮想環境の削除
$ pipenv --rm