Skip to content

build with setup.py errors with 60.9.1 [BUG]  #3118

@C-nit

Description

@C-nit

setuptools version

setuptools==60.9.1

Python version

Python 3.7.6

OS

Linux

Additional environment information

This was encountered on TravisCI using the pypi deployment provider, happens with multiple linux versions from precise to xenial.
Not tested on Linux outside of Travis. Cannot reproduce it on MacOS.

Description

Running python setup.py sdist bdist_wheel errors with newest version of setuptools errors.
Fixed by using version previous to 60.9.

This might be related to #3113 as the error occurs at setuptools/_vendor/importlib_metadata/__init__.py

Expected behavior

dist/* to be built without errors

How to Reproduce

  1. Have a python package using setup.py calling setup()
  2. Have TravisCI build distributions during it's deploy step
deploy:
  provider: pypi
  distributions: "sdist bdist_wheel"
  username: ${PYPI_USERNAME}
  password: ${PYPI_PASSWORD}

that boils down to the following commands that can be reproduced

script:
  # mimic travis deploy steps concerning build during deployment step
  # https://github.com/travis-ci/dpl/blob/v1.10.16/lib/dpl/provider/pypi.rb
  # https://github.com/travis-ci/dpl/blob/b577682ac17ff10b7f3fe58c5da1113b05e68cb7/lib/dpl/provider.rb#L187
  - |
    if [ -z ${VIRTUAL_ENV+x} ]; then export PIP_USER=yes; fi && \
    wget -nv -O - https://bootstrap.pypa.io/get-pip.py | python - --no-setuptools --no-wheel && \
    pip install --upgrade --upgrade-strategy eager setuptools twine wheel
  - python setup.py sdist bdist_wheel

This can be fixed by reverting to version previous to 60.9.
For example on travis they provide a parameter:

deploy:
  provider: pypi
  distributions: "sdist bdist_wheel"
  username: ${PYPI_USERNAME}
  password: ${PYPI_PASSWORD}
  setuptools_version: "60.8.2"

Output

Deploying application
Traceback (most recent call last):
  File "setup.py", line 8, in <module>
    setup()
  File "/home/travis/virtualenv/python3.7.6/lib/python3.7/site-packages/setuptools/__init__.py", line 155, in setup
    return distutils.core.setup(**attrs)
  File "/home/travis/virtualenv/python3.7.6/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 109, in setup
    _setup_distribution = dist = klass(attrs)
  File "/home/travis/virtualenv/python3.7.6/lib/python3.7/site-packages/setuptools/dist.py", line 462, in __init__
    for k, v in attrs.items()
  File "/home/travis/virtualenv/python3.7.6/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 293, in __init__
    self.finalize_options()
  File "/home/travis/virtualenv/python3.7.6/lib/python3.7/site-packages/setuptools/dist.py", line 850, in finalize_options
    for ep in sorted(loaded, key=by_order):
  File "/home/travis/virtualenv/python3.7.6/lib/python3.7/site-packages/setuptools/dist.py", line 849, in <lambda>
    loaded = map(lambda e: e.load(), filtered)
  File "/home/travis/virtualenv/python3.7.6/lib/python3.7/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 196, in load
    return functools.reduce(getattr, attrs, module)
AttributeError: type object 'Distribution' has no attribute '_finalize_feature_opts'

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs InvestigationIssues which are likely in scope but need investigation to figure out the causeNeeds ReproIssues that need a reproducible example.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions