pip ライブラリを一括更新したかった
Raspberry PiにCO2モニター CO2-mini | 自然環境測定器 - 製品情報 - 計測器のカスタムと、PM2.5などをチェックするセンサーをつけて、部屋の中の空気を管理しています。主にCO2やPM2.5を気にしてます。
今回それは置いといて。
これらを制御するためにPython
のライブラリを使っています。しばらく放置しすぎたために、pip
でインストールするライブラリ群が古くなっていたので、今回いきおいあまってアップデートしてみたら、非常に大変で萎えたことを報告します。
いっぺんに更新ができない
bundle update
とかnpm update
をしたかっただけですが、pip
には標準でそのような一括更新コマンドはないようです。残念です。仕方がないので pip-review
ライブラリをインストールしてpip-review auto
してみました。なるほど。
/tmpの容量が少ない
Raspberry Piに対応している某debian系OSでは、/tmp
が32KBしか割り当てられていません。おかげさまで"OSError: [Errno 28] No space left on device"
が発生しました。他のストレージに余裕があるのに、あえてここで/tmp
へ容量を割り当てるのは面倒です。ということで、一時的にテンポラリフォルダを割り当てました。
$ mkdir -p $HOME/tmp
$ TMPDIR=$HOME/tmp pip-review auto
アンインストールできない
pip
のパッケージアップデートでは、どうもアンインストール・インストールを普通にするようです。pip
のバージョンが上がりすぎて、アンインストールできないパッケージが出てくるという厄介事に気がつきました。その所為でpip-review
が止まります。
仕方がないので、個別にこれです。
$ pip install pip==8.1.1
$ pip uninstall PyYAML
$ pip install --upgrade pip
$ pip install PyYAML
8.1.1
の何がよいかはわかりませんが、1つ1つこれでちまちま対応しました。いやね、pip-review
使わずに、このアンインストールをうまく制御するスクリプトを書いてくれている人もいるんですが、そういうことじゃない。パッケージ管理ツールが悪い。
こういう地味に使いづらいところも含めて、Python
が苦手です。
Discussion