pipenvのススメ

pipenvとは

環境ごとにパッケージの管理ができるツール。npm・yarnのpython版

Dockerとの比較

  • ホストのpythonを用いるので軽い
  • devcontainerを用いなくてもVSCodeが自動的に読み込んでくれる(後述の .vev ファイルが必要)
  • Pythonモジュール以外にインストールの必要がない場合はDockerより良さそう。

具体的な挙動

  • Pipfile に依存パッケージが記述される。 (package.json に該当)
  • Pipfile.lock に実際にインストールされたバージョンが記述される→環境による差異を防ぐ (package.lockyarn.lockに該当)

↑これらをgitにコミットすることで環境を共有できる

インストール

pip install pipenv

pyenvとの連携が便利

主要コマンド

pipenv --python 3.8 # 初期化 pyenvが入っていると該当のpythonバージョンを読み込んでくれる。 (npm init)
pipenv install pandas # パッケージのインストール (npm install --save libname)
pipenv install black --dev # 開発用モジュールをinstall (npm install --save-dev libname)
pipenv sync --dev # Pipfile.lockからインストール(cloneしたら基本これ) (npm install)
pipenv install --dev # Pipfileを使ってinstall(Pipfileを手動で編集してパッケージを追加した場合に実行する)
pipenv shell # pipenvの環境内に入る(vscodeのターミナルなら自動で実行してくれる)

.venv の生成

VSCodeで補完を効かせるために必要

.bashrc.bash_profile に記述。

export PIPENV_VENV_IN_PROJECT=true

参考

海老原 祐輔
海老原 祐輔
Yusuke Ebihara