Pythonistaのみなさん、requirements.txtに書かれたパッケージのバージョンアップはどうしていますか?
定期的にPyPIの検索窓にパッケージ名をコピペしてバージョン番号を調べる、なんてことしていませんか?
pip-toolsならもっと楽に管理できます!
インストール方法
pip(>=6.1)で以下のようにインストールできます。
pip install pip-tools
pip-compileコマンドの使い方
requirements.inというファイルに、インストールしたいパッケージ名を書いてください。書き方はrequirements.txtと同じです。
Django
easy-thumbnails
Fabric
そして、以下のコマンドを実行すると、実行時の最新バージョン番号を指定した requirements.txt が生成されます。
pip-compile requirements.in
依存関係にあるパッケージも調べて書き出してくれます。
また、「このバージョン以上の最新」や「このバージョンの範囲で最新」という指定をしたい場合は以下のように書けます。
(これもrequirements.txtの書き方と同じですね)
Django>=1.8.0,<1.9.0
easy-thumbnails>=2.2
Fabric>=1.8.0,<2.0.0
pip-syncコマンドの使い方
pip install -r requirements.txtの代わりに使えるコマンドです。
以下のコマンドでrequirements.txtに書かれたパッケージをインストールします。
pip-sync
普通のpip installと違って、以前インストールしていたけど使わなくなったパッケージをアンインストールしてくれます。
こんな使い方も便利かも
pip-compileには--dry-runオプションがあるので、requirements.txtを更新する前に、こんな風に以前生成した内容との違いを比較することができます。
pip-compile --dry-run requirements.in | diff requirements.txt -
これをCIやcronジョブで実行して、パッケージのバージョンアップが必要になったら自動通知されるようにしておくと、幸せになれるかもしれません。