LoginSignup
93
87

More than 5 years have passed since last update.

pip-toolsでrequirements.txtのパッケージバージョン番号を管理しよう

Last updated at Posted at 2015-09-11

Pythonistaのみなさん、requirements.txtに書かれたパッケージのバージョンアップはどうしていますか?
定期的にPyPIの検索窓にパッケージ名をコピペしてバージョン番号を調べる、なんてことしていませんか?
pip-toolsならもっと楽に管理できます!

インストール方法

pip(>=6.1)で以下のようにインストールできます。

pip install pip-tools

pip-compileコマンドの使い方

requirements.inというファイルに、インストールしたいパッケージ名を書いてください。書き方はrequirements.txtと同じです。

requirements.in
Django
easy-thumbnails
Fabric

そして、以下のコマンドを実行すると、実行時の最新バージョン番号を指定した requirements.txt が生成されます。

pip-compile requirements.in

依存関係にあるパッケージも調べて書き出してくれます。
また、「このバージョン以上の最新」や「このバージョンの範囲で最新」という指定をしたい場合は以下のように書けます。
(これもrequirements.txtの書き方と同じですね)

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

93
87
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
93
87