Problems regarding the python plugin(v1) and the python-distutils-extra package

I’m snapping https://gitlab.com/screenkey/screenkey which is a Python application that makes use of the python-distutils-extra package for i18n support during build time, however it appears to not able to locate it during the build step:

Building wheels for collected packages: screenkey
  Building wheel for screenkey (setup.py): started
  Building wheel for screenkey (setup.py): finished with status 'done'
  Created wheel for screenkey: filename=screenkey-1.2-py3-none-any.whl size=78844 sha256=a5a6d4c39d4b5c05713448ad13ffff21b49b97c289dcd1e4343710546ae59ba3
  Stored in directory: /tmp/pip-ephem-wheel-cache-y0ru53ah/wheels/e9/87/5b/75b8f68a059e4a5120ccfaa0c49304a5813ef076a2b8c68f70
Successfully built screenkey
Installing collected packages: screenkey
ERROR: Exception:
Traceback (most recent call last):
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 228, in _main
    status = self.run(options, args)
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/lib/python3.6/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
    return func(self, options, args)
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 406, in run
    pycompile=options.compile,
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/lib/python3.6/site-packages/pip/_internal/req/__init__.py", line 90, in install_given_reqs
    pycompile=pycompile,
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/lib/python3.6/site-packages/pip/_internal/req/req_install.py", line 785, in install
    prefix=prefix,
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/lib/python3.6/site-packages/pip/_internal/locations.py", line 186, in get_scheme
    dist_name, user, home, root, isolated, prefix
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/lib/python3.6/site-packages/pip/_internal/locations.py", line 125, in distutils_scheme
    i.finalize_options()
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/usr/lib/python3.6/distutils/command/install.py", line 390, in finalize_options
    ('build_lib', 'build_lib'))
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/usr/lib/python3.6/distutils/cmd.py", line 286, in set_undefined_options
    src_cmd_obj = self.distribution.get_command_obj(src_cmd)
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/usr/lib/python3.6/distutils/dist.py", line 857, in get_command_obj
    self._set_command_options(cmd_obj, options)
  File "/build/snapcraft-screenkey-878e2b/parts/main/install/usr/lib/python3.6/distutils/dist.py", line 901, in _set_command_options
    % (source, command_name, option))
distutils.errors.DistutilsOptionError: error in setup.cfg: command 'build' has no such option 'i18n'

Complete build log: https://paste.ubuntu.com/p/3BH6rCttyy/

Snapcraft recipe: https://github.com/Lin-Buo-Ren/screenkey-snap/blob/master/snap/snapcraft.yaml

Clone the repository and comment-out the following lines to reproduce the problem:

Please help.

Some teasers for the motivation :wink:

screenshot-regular-usage

I see the actual command with .../install/usr/bin/python3 --help-commands and can manually run the command, seems the issue lies in setup.cfg and something done here https://salsa.debian.org/python-team/packages/python-distutils-extra/-/blob/master/DistUtilsExtra/command/build_extra.py#L45

I hope this is a good starting point to continue looking into the issue

1 Like