Running setup.py bdist_wheel for wxpython ... error

Hi from New Zealand. I’m currently trying to get wxPython to work in a snap, but when I run “sudo snapcraft cleanbuild”, I get the titular error. It continues for a while until it goes downhill from here:

  checking for OpenGL headers... not found
  checking for GL/gl.h... no
  configure: error: OpenGL libraries not available
  Error running configure
  ERROR: failed building wxWidgets
  Traceback (most recent call last):
    File "build.py", line 1269, in cmd_build_wx
      wxbuild.main(wxDir(), build_options)
    File "/tmp/pip-build-x5t5gvr4/wxpython/buildtools/build_wxwidgets.py", line 376, in main
      "Error running configure")
    File "/tmp/pip-build-x5t5gvr4/wxpython/buildtools/build_wxwidgets.py", line 85, in exitIfError
      raise builder.BuildError(msg)
  buildtools.builder.BuildError: Error running configure
  Finished command: build_wx (0m3.117s)
  Finished command: build (0m3.117s)
  Command '"/root/build_sqab-tuxbert/parts/sqab-tuxbert/install/usr/bin/python3" -u build.py build' failed with exit code 1.
  
  ----------------------------------------
  Failed building wheel for wxpython
  Running setup.py clean for wxpython
  Running setup.py bdist_wheel for sqab ... done
  Stored in directory: /tmp/tmpgzzu9ut8
Successfully built sqab
Failed to build wxpython
ERROR: Failed to build one or more wheels
Traceback (most recent call last):
  File "/usr/bin/snapcraft", line 9, in <module>
    load_entry_point('snapcraft==2.35', 'console_scripts', 'snapcraft')()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 542, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2569, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2229, in load
    return self.resolve()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2235, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3/dist-packages/snapcraft/cli/__main__.py", line 19, in <module>
    run(prog_name='snapcraft')
  File "/usr/lib/python3/dist-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3/dist-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/snapcraft/cli/lifecycle.py", line 140, in snap
    project_options, directory=directory, output=output)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_packer.py", line 45, in snap
    execute('prime', project_options)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py", line 80, in execute
    _Executor(config, project_options).run(step, part_names)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py", line 175, in run
    self._run_step(step, part, part_names)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py", line 212, in _run_step
    getattr(part, step)()
  File "/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/__init__.py", line 330, in build
    self.plugin.build()
  File "/usr/lib/python3/dist-packages/snapcraft/plugins/python.py", line 354, in build
    installed_pipy_packages = self._run_pip(setup_file)
  File "/usr/lib/python3/dist-packages/snapcraft/plugins/python.py", line 324, in _run_pip
    wheels = pip.wheel(**command)
  File "/usr/lib/python3/dist-packages/snapcraft/plugins/python.py", line 492, in wheel
    self._exec_func(cmd, env=self._env, **kwargs)
  File "/usr/lib/python3/dist-packages/snapcraft/_baseplugin.py", line 202, in run
    return common.run(cmd, cwd=cwd, **kwargs)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/common.py", line 63, in run
    subprocess.check_call(['/bin/sh', f.name] + cmd, **kwargs)
  File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/bin/sh', '/tmp/tmp6vlesq20', '/root/build_sqab-tuxbert/parts/sqab-tuxbert/install/usr/bin/python3', '-m', 'pip', 'wheel', '--disable-pip-version-check', '--no-index', '--find-links', '/root/build_sqab-tuxbert/parts/sqab-tuxbert/packages', '--wheel-dir', '/tmp/tmpgzzu9ut8', '.', 'wxpython']' returned non-zero exit status 1
Stopping local:snapcraft-safely-stable-owl
Traceback (most recent call last):
  File "/usr/bin/snapcraft", line 11, in <module>
    load_entry_point('snapcraft==2.34+17.10', 'console_scripts', 'snapcraft')()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 564, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2662, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2316, in load
    return self.resolve()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2322, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3/dist-packages/snapcraft/cli/__main__.py", line 19, in <module>
    run(prog_name='snapcraft')
  File "/usr/lib/python3/dist-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3/dist-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/snapcraft/cli/lifecycle.py", line 188, in cleanbuild
    lifecycle.cleanbuild(project_options, remote)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle.py", line 326, in cleanbuild
    metadata=config.get_metadata(), remote=remote).execute()
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lxd.py", line 164, in execute
    raise e
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lxd.py", line 158, in execute
    self._container_run(command, cwd=self._project_folder)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lxd.py", line 113, in _container_run
    check_call(['lxc', 'exec', self._container_name, '--'] + cmd)
  File "/usr/lib/python3.6/subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['lxc', 'exec', 'local:snapcraft-safely-stable-owl', '--', 'sh', '-c', 'cd /root/build_sqab-tuxbert; snapcraft snap --output sqab-tuxbert_0.1_amd64.snap']' returned non-zero exit status 1.

Interestingly, when I tried to pip install wxpython, it managed this without complaining about OpenGL, so I'm slightly confused as to what is going wrong.

Interestingly, when I tried to pip install wxpython, it managed this without complaining about OpenGL, so I’m slightly confused as to what is going wrong.

To get the OpenGL headers you need to add a build-packages entry for libgl1-mesa-dev:

parts:
  wxpython:
    ...
    build-packages:
      - libgl1-mesa-dev
      ...
...
1 Like