pipで入れたライブラリを一括アップデート

pipで入れたやつを全部アップデートするのに、pip-reviewというやつがあるらしい。

これはpipで入るので

pip install pip-review

で入れて、そうして

pip-review -a

とすれば全部アプデしてくれる。

これで良さげ。

使ってるのがpip3のせいか知らんけどうまくいかん

ただ、自分は普段使いのpipがpip3としてコマンドを叩いていて設定がうまくいかないのでシェルスクリプトを書くことで対応しようと思う。

まず、pipで入れたもののリストを表示。

pip3 list

そうするとざっと見れる。

f:id:komi1230:20190729123740p:plain

バージョン番号はいらないのでawkで消す。

pip3 list | awk '{print $1}'

f:id:komi1230:20190729123818p:plain

で、上の2行のPackageと------ってのが邪魔なのでこれはtailで消す。

pip3 list | awk '{print $1}' | tail -n +3

f:id:komi1230:20190729123852p:plain

あとはこれをxargsで引数全てをpipのアップデートコマンドに流し込んでやる。

pip3 list | awk '{print $1}' | tail -n +3 | xargs pip3 install --upgrade

これで良さげ。

所感

シェルでちまちま書いていけばpip-reviewと同じことはできるね〜って感じ。

ただ、そんなことするより各プロジェクトでvirtualpyenvなりpipenvを使って仮想環境作ってそれでモジュールのバージョン管理した方がよくね?って考えもあったり....

まあ自分はそこらへんの管理はめちゃくちゃテキトーなので今回はこれでいいかなって感想。

てかどうでもいいけどpipで入れるやつってライブラリ?モジュール?パッケージ?フレームワーク

なんて言えばいいんだろう....

ここらへん気をつけておかないと言葉狩り警察に逮捕されちゃう....