Libretime: Installer fails: error: Setup script exited with 'pkg-config' not found

Created on 15 Nov 2020  路  11Comments  路  Source: LibreTime/libretime

To Reproduce
Steps to reproduce the behavior:

  1. Clone main repo and run installer with -fiap
  2. See error

LibreTime version:
Latest commit

Installation method:

  • OS: Ubuntu Cloud Image
  • OS Version: Bionic
  • Method: install -fiap

Screenshots

Installed /usr/local/lib/python3.6/dist-packages/pika-1.1.0-py3.6.egg
Searching for PyGObject>=3.34.0
Reading https://pypi.org/simple/PyGObject/
Downloading https://files.pythonhosted.org/packages/3a/a7/de282a4aaedba59d60a895a7821e6497b39cbdfa94a352776ff45ffc6e6f/PyGObject-3.38.0.tar.gz#sha256=051b950f509f2e9f125add96c1493bde987c527f7a0c15a1f7b69d6d1c3cd8e6
Best match: PyGObject 3.38.0
Processing PyGObject-3.38.0.tar.gz
Writing /tmp/easy_install-n5mc2apo/PyGObject-3.38.0/setup.cfg
Running PyGObject-3.38.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-n5mc2apo/PyGObject-3.38.0/egg-dist-tmp-xd6_j2y0
error: Setup script exited with 'pkg-config' not found.
Arguments: ('pkg-config', '--print-errors', '--exists', 'glib-2.0 >= 2.48.0')

Try installing it with: 'sudo apt install pkg-config'

Additional context
I see that Travis CI failed to build the latest commit... :(

bug

All 11 comments

@paddatrapper The first instance of the failure appears to be in 900b204

CI fix WIP: #1092

Update: after manually installing the following packages, I got this error.

  • pkg_config
  • libglib2.0-dev
  • libgirepository1.0-dev
  • libcairo2-dev
Installed /usr/local/lib/python3.6/dist-packages/airtime_analyzer-0.1-py3.6.egg
Processing dependencies for airtime-analyzer==0.1
Searching for PyGObject>=3.34.0
Reading https://pypi.org/simple/PyGObject/
Downloading https://files.pythonhosted.org/packages/3a/a7/de282a4aaedba59d60a895a7821e6497b39cbdfa94a352776ff45ffc6e6f/PyGObject-3.38.0.tar.gz#sha256=051b950f509f2e9f125add96c1493bde987c527f7a0c15a1f7b69d6d1c3cd8e6
Best match: PyGObject 3.38.0
Processing PyGObject-3.38.0.tar.gz
Writing /tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.cfg
Running PyGObject-3.38.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-0j78b4ai/PyGObject-3.38.0/egg-dist-tmp-7un428up
Package py3cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `py3cairo.pc'
to the PKG_CONFIG_PATH environment variable
No package 'py3cairo' found
Traceback (most recent call last):
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 170, in _run_pkg_config
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '('pkg-config', '--print-errors', '--exists', 'py3cairo >= 1.11.1')' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 178, in _run_pkg_config
  File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['pkg-config', '--exists', 'py3cairo']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 191, in _run_pkg_config_or_exit
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 180, in _run_pkg_config
__main__.PkgConfigMissingPackageError: Command '('pkg-config', '--print-errors', '--exists', 'py3cairo >= 1.11.1')' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 152, in save_modules
    yield saved
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 193, in setup_context
    yield
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 254, in run_setup
    _execfile(setup_script, ns)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 43, in _execfile
    exec(code, globals, locals)
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 1259, in <module>
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 1254, in main
  File "/usr/local/lib/python3.6/dist-packages/setuptools/__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/bdist_egg.py", line 167, in run
    cmd = self.call_command('install_lib', warn_dir=0)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/bdist_egg.py", line 153, in call_command
    self.run_command(cmdname)
  File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/install_lib.py", line 11, in run
    self.build()
  File "/usr/lib/python3.6/distutils/command/install_lib.py", line 109, in build
    self.run_command('build_ext')
  File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 1088, in run
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 1083, in _setup_extensions
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 1066, in add_pycairo
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 905, in get_pycairo_include_dir
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 889, in find_pkg_config
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 214, in pkg_config_version_check
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 205, in _run_pkg_config_or_exit
SystemExit: Command '('pkg-config', '--print-errors', '--exists', 'py3cairo >= 1.11.1')' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ubuntu/libretime/python_apps/airtime_analyzer/setup.py", line 49, in <module>
    data_files=data_files)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/install.py", line 67, in run
    self.do_egg_install()
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/install.py", line 117, in do_egg_install
    cmd.run(show_deprecation=False)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/easy_install.py", line 408, in run
    self.easy_install(spec, not self.no_deps)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/easy_install.py", line 650, in easy_install
    return self.install_item(None, spec, tmpdir, deps, True)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/easy_install.py", line 697, in install_item
    self.process_distribution(spec, dist, deps)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/easy_install.py", line 742, in process_distribution
    [requirement], self.local_index, self.easy_install
  File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 766, in resolve
    replace_conflicting=replace_conflicting
  File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 1049, in best_match
    return self.obtain(req, installer)
  File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 1061, in obtain
    return installer(requirement)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/easy_install.py", line 669, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/easy_install.py", line 695, in install_item
    dists = self.install_eggs(spec, download, tmpdir)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/easy_install.py", line 880, in install_eggs
    return self.build_and_install(setup_script, setup_base)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/easy_install.py", line 1150, in build_and_install
    self.run_setup(setup_script, setup_base, args)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/easy_install.py", line 1134, in run_setup
    run_setup(setup_script, args)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 257, in run_setup
    raise
  File "/usr/lib/python3.6/contextlib.py", line 99, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 193, in setup_context
    yield
  File "/usr/lib/python3.6/contextlib.py", line 99, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 164, in save_modules
    saved_exc.resume()
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 139, in resume
    raise exc.with_traceback(self._tb)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 152, in save_modules
    yield saved
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 193, in setup_context
    yield
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 254, in run_setup
    _execfile(setup_script, ns)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/sandbox.py", line 43, in _execfile
    exec(code, globals, locals)
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 1259, in <module>
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 1254, in main
  File "/usr/local/lib/python3.6/dist-packages/setuptools/__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/bdist_egg.py", line 167, in run
    cmd = self.call_command('install_lib', warn_dir=0)
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/bdist_egg.py", line 153, in call_command
    self.run_command(cmdname)
  File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python3.6/dist-packages/setuptools/command/install_lib.py", line 11, in run
    self.build()
  File "/usr/lib/python3.6/distutils/command/install_lib.py", line 109, in build
    self.run_command('build_ext')
  File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 1088, in run
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 1083, in _setup_extensions
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 1066, in add_pycairo
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 905, in get_pycairo_include_dir
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 889, in find_pkg_config
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 214, in pkg_config_version_check
  File "/tmp/easy_install-0j78b4ai/PyGObject-3.38.0/setup.py", line 205, in _run_pkg_config_or_exit
setuptools.sandbox.UnpickleableException: SystemExit(PkgConfigMissingPackageError(CalledProcessError(1, ('pkg-config', '--print-errors', '--exists', 'py3cairo >= 1.11.1')),),)

I had the same error on Ubuntu 18.04.5, Raspberry

In case it could help anybody, I managed to complete the installation following these steps :

I concur. @ChienMaigreDeLaPizza, you are amazing!

I'm going to work on incorporating the above instructions into the installation script. Same bat PR, same bat channel.

@zklosko can you use a different PR please? Makes review easier. Usually try keep a PR restricted to a single feature or bug.

The packages can be added to installer/lib/*.apt. Then the PyGObject should be added to the Python app that requires pycairo

@paddatrapper Yes, certainly. My apologies. I've never cherry-picked commits before so it might take me a hot second to get everything set up.

No problem, thanks!

@paddatrapper #1110

I haven't tested this for Debian, just Ubuntu 18.04.

I had the problem...
I pull Master...
It Works !
Tested on Debian, Debian GNU/Linux 10 (buster)

Thanks a lot <3

Tested on a fresh install on ubuntu server 18.4.05, Rasperry Pi 3B and 4.
Works.

Was this page helpful?
0 / 5 - 0 ratings