pipでインストールしたパッケージの一括アップデート

プログラミング中、エラーがどうやっても消えないことがあります。その場合、パッケージをアップデートすることで解決することがあります。

Ubuntu全体のパッケージ管理は、apt コマンドを使用します。管理者権限で

管理者なら
apt update
apt upgrade

管理者以外なら
sudo apt update
sudo apt upgrade

これでパッケージ間の依存関係も含めて、比較的安全にアップデートできます。

しかし、python 用のパッケージ管理ツール pip の場合は、アップデートで躓くことがあります。

一括でアップデートするなら、pip-review を以下のコマンドでインストールして

pip install pip-review

以下のコマンドで一括アップデートができる…はず…なのですが

pip-review --auto

状況によっては、error: metadata-generation-failed と言われてアップデートが失敗します…

散々、error と言われ続けたので、一部のエラーについての解決策を書きます。

dbus-1

Run-time dependency dbus-1 found: NO

と言われた場合、以下のコマンドで解決します。

sudo apt install libdbus-1-dev
pkg-config --libs --cflags dbus-1

glib-2.0

Run-time dependency glib-2.0 found: NO (tried pkgconfig)

と言われた場合、以下のコマンドで解決します。

sudo apt install libglib2.0-dev
pkg-config --libs --cflags glib-2.0

PyGObject

ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects

と言われた場合、以下のコマンドで解決します。

sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 libcups2-dev libgtk-3-dev libgirepository1.0-dev

systemd-python

No package ‘libsystemd-journal’ found

と言われた場合、以下のコマンドで解決します。

sudo apt install libsystemd-dev

残り

ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed.

と言われて、アップデートできなかったパッケージがある場合、残りは個別にアップデートします。このエラーの後に、依存関係で問題になったパッケージ名が書いてあるので、個別に以下のコマンドでアップデートしていきます。

pip install --upgrade パッケージ名

コメント