【解決】PyGObject のインストールエラーに対処する

Linux,プログラムPip,PyGObject,Python,シェルスクリプト

Python のパッケージマネージャ pipPyGObject をアップグレードしようとしたらエラーが出たので対応方法を書いておきます。

環境

  • Linux, Ubuntu 20.04.5 LTS
  • Python 3.8
  • pip 22.3.1

対応方法(結論)

アップグレードに失敗したエラーメッセージに書いてありました。libgirepository1.0-dev をインストールするとよいそうです。

sudo apt install libgirepository1.0-dev

これでインストールしたあと、pip install -U pygobject で無事アップグレードできました。

起きたこと

pip コマンドでアップグレードしようとしたら以下のようなエラーが出てしまいました。

  Building wheel for PyGObject (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for PyGObject (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [44 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-38
      creating build/lib.linux-x86_64-cpython-38/pygtkcompat
      copying pygtkcompat/generictreemodel.py -> build/lib.linux-x86_64-cpython-38/pygtkcompat
      copying pygtkcompat/__init__.py -> build/lib.linux-x86_64-cpython-38/pygtkcompat
      copying pygtkcompat/pygtkcompat.py -> build/lib.linux-x86_64-cpython-38/pygtkcompat
      creating build/lib.linux-x86_64-cpython-38/gi
      copying gi/_option.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/module.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/_constants.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/docstring.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/_ossighelper.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/_error.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/_propertyhelper.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/importer.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/types.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/_signalhelper.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/_gtktemplate.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/__init__.py -> build/lib.linux-x86_64-cpython-38/gi
      copying gi/pygtkcompat.py -> build/lib.linux-x86_64-cpython-38/gi
      creating build/lib.linux-x86_64-cpython-38/gi/repository
      copying gi/repository/__init__.py -> build/lib.linux-x86_64-cpython-38/gi/repository
      creating build/lib.linux-x86_64-cpython-38/gi/overrides
      copying gi/overrides/GObject.py -> build/lib.linux-x86_64-cpython-38/gi/overrides
      copying gi/overrides/GLib.py -> build/lib.linux-x86_64-cpython-38/gi/overrides
      copying gi/overrides/Pango.py -> build/lib.linux-x86_64-cpython-38/gi/overrides
      copying gi/overrides/Gtk.py -> build/lib.linux-x86_64-cpython-38/gi/overrides
      copying gi/overrides/keysyms.py -> build/lib.linux-x86_64-cpython-38/gi/overrides
      copying gi/overrides/GdkPixbuf.py -> build/lib.linux-x86_64-cpython-38/gi/overrides
      copying gi/overrides/Gdk.py -> build/lib.linux-x86_64-cpython-38/gi/overrides
      copying gi/overrides/Gio.py -> build/lib.linux-x86_64-cpython-38/gi/overrides
      copying gi/overrides/GIMarshallingTests.py -> build/lib.linux-x86_64-cpython-38/gi/overrides
      copying gi/overrides/__init__.py -> build/lib.linux-x86_64-cpython-38/gi/overrides
      running build_ext
      Package gobject-introspection-1.0 was not found in the pkg-config search path.
      Perhaps you should add the directory containing `gobject-introspection-1.0.pc'
      to the PKG_CONFIG_PATH environment variable
      No package 'gobject-introspection-1.0' found
      Command '('pkg-config', '--print-errors', '--exists', 'gobject-introspection-1.0 >= 1.56.0')' returned non-zero exit status 1.

      Try installing it with: 'sudo apt install libgirepository1.0-dev'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for PyGObject

ごちゃごちゃ書いてますが、最後の方に

No package 'gobject-introspection-1.0' found
Command '('pkg-config', '--print-errors', '--exists', 'gobject-introspection-1.0 >= 1.56.0')' returned non-zero exit status 1.

Try installing it with: 'sudo apt install libgirepository1.0-dev'

と書いてあります。ご丁寧に「libgirepository1.0-dev のインストールを試せ」と書いてあるので、それに従います。libgirepository1.0-dev パッケージをインストールしたあとに pip でアップグレードすると無事にうまくいきました。