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ジョブで実行して、パッケージのバージョンアップが必要になったら自動通知されるようにしておくと、幸せになれるかもしれません。