ovb reproducer fails on "no module named docutils.core"

Bug #1809169 reported by wes hayutin on 2018-12-19
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Critical
Unassigned

Bug Description

+(/opt/stack/tripleo-ci/toci_gate_test.sh:274): sudo pip install gear [428/1062]
Collecting gear
  Using cached https://files.pythonhosted.org/packages/5e/c4/02b68d0e10305585d838bba8b56843e57454b4ce14de82fba94e32063cfb/gear-0.12.0-py2.py3-none-any.whl
Collecting python-daemon>=2.0.4 (from gear)
  Using cached https://files.pythonhosted.org/packages/99/2a/75fe6aa7086e838570f29899f674e7896a42be26d9fff33f90d990e599d2/python-daemon-2.2.0.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-2XBche/python-daemon/setup.py", line 102, in <module>
        setup(**setup_kwargs)
      File "/usr/lib64/python2.7/distutils/core.py", line 112, in setup
        _setup_distribution = dist = klass(attrs)
      File "/tmp/pip-install-2XBche/python-daemon/version.py", line 652, in __init__
        super(ChangelogAwareDistribution, self).__init__(*args, **kwargs)
      File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 269, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 313, in fetch_build_eggs
        replace_conflicting=True,
      File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 826, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1092, in best_match
        return self.obtain(req, installer)
      File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1104, in obtain
        return installer(requirement)
      File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 378, in fetch_build_egg
        cmd.ensure_finalized()
      File "/usr/lib64/python2.7/distutils/cmd.py", line 109, in ensure_finalized
        self.finalize_options()
      File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 249, in finalize_options
        'dist_version': self.distribution.get_version(),
      File "/tmp/pip-install-2XBche/python-daemon/version.py", line 671, in get_version
        version_info = self.get_version_info()
      File "/tmp/pip-install-2XBche/python-daemon/version.py", line 667, in get_version_info
        version_info = generate_version_info_from_changelog(changelog_path)
      File "/tmp/pip-install-2XBche/python-daemon/version.py", line 495, in generate_version_info_from_changelog
        versions_all_json = changelog_to_version_info_collection(infile)
      File "/tmp/pip-install-2XBche/python-daemon/version.py", line 450, in changelog_to_version_info_collection
        import docutils.core
    ImportError: No module named docutils.core

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-2XBche/python-daemon/
[zuul@undercloud-48183 ~]$ sudo yum search python-docutils

Changed in tripleo:
milestone: stein-2 → stein-3
Natal Ngétal (hobbestigrou) wrote :

The problem come from python-daemon:

https://pagure.io/python-daemon/pull-request/20

A patch exists but is not merge at the moment.

Herve Beraud (herveberaud) wrote :

We Natal we have fully refactor packaging and the methods used to build packaging.

https://pagure.io/python-daemon/pull-request/22

Our changes avoid this error, improve code maintenance of this project, introduce unit test with tox and simplify packaging.

Herve Beraud (herveberaud) wrote :

s/We Natal/With Natal/

Herve Beraud (herveberaud) wrote :

Please can you give your version of environment:
- pip
- setuptools
- etc...

in use in your environment.

A pip freeze can be the right solution, you can dump the result into a file and attach it to this issue.

$ pip freeze > /tmp/freeze
$ sudo pip freeze > /tmp/sudo-freeze

Thanks

Herve Beraud (herveberaud) wrote :

erratum:

pip --version

and the pip freeze outputs are useful

Herve Beraud (herveberaud) wrote :

On my side impossible to reproduce this bug...

I have try with many versions of requirements and pypa tools (pip and setuptools)...

More informations are welcome

The problem is caused by Pip and Setuptools failing to correctly handle ‘setup_requires’ dependencies. See the bug report at https://github.com/pypa/setuptools/issues/457

The latest version of ‘python-daemon’, version 2.2.3, now has a PEP-518 conformant build system specification. https://pagure.io/python-daemon/blob/c1d0fdf88c43dc9dbb3feba6d792beadb3c32483/f/pyproject.toml

I believe recent versions of build tools will correctly interpret the build dependencies from that file.

Changed in tripleo:
status: Triaged → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.