pipで管理しているパッケージを一括でアップデートする

by QueenieVonSugarpants



StackOverflowのウケウリです。これ。


やり方を大きく分けると、以下の2通り。

  • pip-toolsを使う
  • ワンライナーを書いて実行


個人的には、動作保障的な意味で、全パッケージのバージョンを一括でアップデートすることはそうないのですがwそれぞれ、メモがてらやり方を書いておきます。

pip-toolsを使う (追記有り)

まず、pipを使ってサクっとインストールします。

$ sudo pip install pip-tools

2015/11/30 追記

下記の pip-review コマンドは、既に pip-tools から削除された機能となっています。

現在は、そこから派生・独立していて、以下手順でインストールできます。

$ sudo pip install pip-review


インストールできたら、以下のように"pip-review"コマンドを実行すると、PyPIリポジトリをチェックして、アップデート可能なパッケージをリスト的な感じでレポーティングしてくれます。

$ pip-review
Django==1.6.1 is available (you have 1.5.4)
Mako==0.9.0 is available (you have 0.8.1)
MarkupSafe==0.18 is available (you have 0.15)
PAM==0.1.4 is available (you have 0.4.2)
Pillow==2.2.1 is available (you have 2.0.0)
SecretStorage==1.1.0 is available (you have 1.0.0)
No update information found for Twisted-Core
No update information found for Twisted-Names
No update information found for Twisted-Web
No update information found for adium-theme-ubuntu
No update information found for apt-xapian-index
awscli==1.2.8 is available (you have 0.13.2)
bcdoc==0.12.0 is available (you have 0.5.0)
boto==2.20.1 is available (you have 2.9.6)
botocore==0.28.0 is available (you have 0.13.1)


で、以下のように"--auto"オプションをつけて実行すると、一括で全パッケージをアップデートしてくれます。

$ sudo pip-review --auto


"--interactive"オプションをつけると、言葉の通りですが、インタラクティブな感じでパッケージごとにアップグレードするかしないかを聞いてくれます。([A]ll を選択すると、全てアップグレードされます。)

$ sudo pip-review --interactive
Django==1.6.1 is available (you have 1.5.4)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit 

・・・・・以下略・・・・・

ワンライナーを書いて実行

# pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs pip install -U

これを実行するだけで良い、と。


一応、予期せぬことが起こるのもアレなので、pip-toolsを入れて、pip-reviewで状況を確認してから、バージョンをあげていくのがよいかなとは思います。まぁ、お好みですかね。
それでは!=͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́


パーフェクトPython (PERFECT SERIES 5)

パーフェクトPython (PERFECT SERIES 5)

  • 作者: Pythonサポーターズ,露木誠,ルイス・イアン,石本敦夫,小田切篤,保坂翔馬,大谷弘喜
  • 出版社/メーカー: 技術評論社
  • 発売日: 2013/03/05
  • メディア: 大型本
  • 購入: 1人 クリック: 65回
  • この商品を含むブログ (30件) を見る