When trying to deploy with batou a component that requires anything above python 3.7 a new venv to install zc.buildout and supervisor is created but that fails:
lib2to3 was removed from setuptoolsin version 58.0.0 but batou tries to create a venv with setuptools50.3.2, see the code.
Seems that this is somewhat related to being python 3.7 or 3.8 available in the target system. Starting with 3.9 supervisor's venv fails to get installed as mentioned above.
Our current trick is that whenever we have multiple python versions, we create a Nix runtime with:
This way, python3.7 is picked as the default python 3 version. Is that the right approach? Can we bump setuptools version?
See the full traceback below:
/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/dist.py:667: SetuptoolsDeprecationWarning: As setuptools moves its configuration towards `pyproject.toml`,
`setuptools.config.parse_configuration` became deprecated.
For the time being, you can use the `setuptools.config.setupcfg` module
to access a backward compatible API, but this module is provisional
and might be removed in the future.
parse_configuration(self, self.command_options,
WARNING: The easy_install command is deprecated and will be removed in a future version.
/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/dist.py:667: SetuptoolsDeprecationWarning: As setuptools moves its configuration towards `pyproject.toml`,
`setuptools.config.parse_configuration` became deprecated.
For the time being, you can use the `setuptools.config.setupcfg` module
to access a backward compatible API, but this module is provisional
and might be removed in the future.
parse_configuration(self, self.command_options,
Traceback (most recent call last):
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 152, in save_modules
yield saved
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 193, in setup_context
yield
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 254, in run_setup
_execfile(setup_script, ns)
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 43, in _execfile
exec(code, globals, locals)
File "/tmp/easy_install-sn4im3og/zc.recipe.egg-2.0.7/setup.py", line 26, in <module>
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/__init__.py", line 153, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/core.py", line 148, in setup
dist.run_commands()
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/bdist_egg.py", line 167, in run
cmd = self.call_command('install_lib', warn_dir=0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/bdist_egg.py", line 153, in call_command
self.run_command(cmdname)
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/install_lib.py", line 11, in run
self.build()
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/command/install_lib.py", line 105, in build
self.run_command('build_py')
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/build_py.py", line 55, in run
self.build_package_data()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/build_py.py", line 126, in build_package_data
srcfile in self.distribution.convert_2to3_doctests):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Distribution' object has no attribute 'convert_2to3_doctests'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/easy_install.py", line 2286, in main
setup(
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/__init__.py", line 153, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/core.py", line 148, in setup
dist.run_commands()
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/easy_install.py", line 408, in run
self.easy_install(spec, not self.no_deps)
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/easy_install.py", line 650, in easy_install
return self.install_item(None, spec, tmpdir, deps, True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/easy_install.py", line 695, in install_item
dists = self.install_eggs(spec, download, tmpdir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/easy_install.py", line 880, in install_eggs
return self.build_and_install(setup_script, setup_base)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/easy_install.py", line 1150, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/easy_install.py", line 1134, in run_setup
run_setup(setup_script, args)
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 244, in run_setup
with setup_context(setup_dir):
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/contextlib.py", line 155, in __exit__
self.gen.throw(typ, value, traceback)
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 185, in setup_context
with save_modules():
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/contextlib.py", line 155, in __exit__
self.gen.throw(typ, value, traceback)
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 164, in save_modules
saved_exc.resume()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 139, in resume
raise exc.with_traceback(self._tb)
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 152, in save_modules
yield saved
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 193, in setup_context
yield
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 254, in run_setup
_execfile(setup_script, ns)
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/sandbox.py", line 43, in _execfile
exec(code, globals, locals)
File "/tmp/easy_install-sn4im3og/zc.recipe.egg-2.0.7/setup.py", line 26, in <module>
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/__init__.py", line 153, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/core.py", line 148, in setup
dist.run_commands()
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/bdist_egg.py", line 167, in run
cmd = self.call_command('install_lib', warn_dir=0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/bdist_egg.py", line 153, in call_command
self.run_command(cmdname)
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/install_lib.py", line 11, in run
self.build()
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/command/install_lib.py", line 105, in build
self.run_command('build_py')
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/srv/s-derfreitag/.nix-profile/lib/python3.11/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/build_py.py", line 55, in run
self.build_package_data()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/setuptools/command/build_py.py", line 126, in build_package_data
srcfile in self.distribution.convert_2to3_doctests):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Distribution' object has no attribute 'convert_2to3_doctests'
While:
Installing.
Getting section supervisor.
Initializing section supervisor.
Installing recipe zc.recipe.egg.
Getting distribution for 'zc.recipe.egg==2.0.7'.
An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/buildout.py", line 2174, in main
getattr(buildout, command)(args)
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/buildout.py", line 701, in install
[self[part]['recipe'] for part in install_parts]
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/buildout.py", line 701, in <listcomp>
[self[part]['recipe'] for part in install_parts]
~~~~^^^^^^
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/buildout.py", line 1324, in __getitem__
options._initialize()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/buildout.py", line 1432, in _initialize
self.initialize()
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/buildout.py", line 1438, in initialize
recipe_class = _install_and_load(reqs, 'zc.buildout', entry, buildout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/buildout.py", line 1381, in _install_and_load
zc.buildout.easy_install.install(
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/easy_install.py", line 957, in install
return installer.install(specs, working_set)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/easy_install.py", line 682, in install
for dist in self._get_dist(requirement, ws):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/easy_install.py", line 574, in _get_dist
dists = [_move_to_eggs_dir_and_compile(dist, self._dest)]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/s-derfreitag/deployment/work/supervisor/lib/python3.11/site-packages/zc/buildout/easy_install.py", line 1745, in _move_to_eggs_dir_and_compile
[tmp_loc] = glob.glob(os.path.join(tmp_dest, '*'))
^^^^^^^^^
ValueError: not enough values to unpack (expected 1, got 0)
When trying to deploy with
batou
a component that requires anything above python 3.7 a newvenv
to installzc.buildout
andsupervisor
is created but that fails:lib2to3
was removed fromsetuptools
in version 58.0.0 butbatou
tries to create avenv
withsetuptools
50.3.2, see the code.Seems that this is somewhat related to being python 3.7 or 3.8 available in the target system. Starting with 3.9 supervisor's
venv
fails to get installed as mentioned above.Our current trick is that whenever we have multiple python versions, we create a Nix runtime with:
This way, python3.7 is picked as the default python 3 version. Is that the right approach? Can we bump
setuptools
version?See the full traceback below: