Python 2 Sunset¶
Since January 2020 and the release of Setuptools 45, Python 2 is no longer supported by the most current release (discussion). Setuptools as a project continues to support Python 2 with bugfixes and important features on Setuptools 44.x.
By design, most users will be unaffected by this change. That’s because Setuptools 45 declares its supported Python versions to exclude Python 2.7, and installers such as pip 9 or later will honor this declaration and prevent installation of Setuptools 45 or later in Python 2 environments.
Users that do import any portion of Setuptools 45 or later on Python 2 are directed to this documentation to provide guidance on how to work around the issues.
The best recommendation is to avoid Python 2 and move to Python 3 where possible. This project acknowledges that not all environments can drop Python 2 support, so provides other options.
In less common scenarios, later versions of Setuptools can be installed on
unsupported Python versions. In these environments, the installer is advised
to first install
setuptools<45 to “pin Setuptools” to a compatible
When using older versions of pip (before 9.0), the
Requires-Pythondirective is not honored and invalid versions can be installed. Users are advised first to upgrade pip and retry or to pin Setuptools. Use
pip --versionto determine the version of pip.
Requires-Pythonis not honored and later versions can be installed. In this case, users are advised to pin Setuptools. This applies to
setup.py installinvocations as well, as they use Setuptools under the hood.
It’s still not working¶
If after trying the above steps, the Python environment still has incompatible versions of Setuptools installed, here are some things to try.
Uninstall and reinstall Setuptools. Run
pip uninstall -y setuptoolsfor the relevant environment. Repeat until there is no Setuptools installed. Then
pip install setuptools.
If possible, attempt to replicate the problem in a second environment (virtual machine, friend’s computer, etc). If the issue is isolated to just one unique environment, first determine what is different about those environments (or reinstall/reset the failing one to defaults).
End users who are not themselves the maintainers for the package they are trying to install should contact the support channels for the relevant application. Please be considerate of those projects by searching for existing issues and following the latest guidance before reaching out for support. When filing an issue, be sure to give as much detail as possible to help the maintainers understand what factors led to the issue after following their recommended guidance.
Reach out to your local support groups. There’s a good chance someone nearby has the expertise and willingness to help.
If all else fails, file this template with Setuptools. Please complete the whole template, providing as much detail about what factors led to the issue. Setuptools maintainers will summarily close tickets filed without any meaningful detail or engagement with the issue.