/note/tech

Pythonのパッケージ周りのベストプラクティス(2019年現在)

TL;DR

  • 基本的には pipenvを使えばOK
    • pipenv が他ツールのラッパーになっている
    • pip と venv も、直接使う機会は少ないが知っておくべき
    • LinuxやMac なら pyenv, direnvも使うと便利
  • プロジェクトにはとりあえず以下の4ファイルを含める
    • setup.py
    • setup.cfg
    • Pipfile
    • Pipfile.lock
    • requirements.txt はレガシーなので他ファイルに移行する
  • 「依存パッケージのバージョン」は、プロジェクトによって書くべきファイルが異なる
    • 私のプロジェクトはライブラリだ → setup.cfg
    • 私のプロジェクトはアプリケーションだ → Pipfile と Pipfile.lock