70 lines
3.5 KiB
ReStructuredText
70 lines
3.5 KiB
ReStructuredText
:orphan:
|
|
|
|
Python 2 Sunset
|
|
===============
|
|
|
|
Since January 2020 and the release of Setuptools 45, Python 2 is no longer
|
|
supported by the most current release (`discussion
|
|
<https://github.com/pypa/setuptools/issues/1458>`_). 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.
|
|
|
|
Workarounds
|
|
-----------
|
|
|
|
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
|
|
version.
|
|
|
|
- When using older versions of pip (before 9.0), the ``Requires-Python``
|
|
directive is not honored and invalid versions can be installed. Users are
|
|
advised first to upgrade pip and retry or to pin Setuptools. Use ``pip
|
|
--version`` to determine the version of pip.
|
|
- When using ``easy_install``, ``Requires-Python`` is not honored and later
|
|
versions can be installed. In this case, users are advised to pin
|
|
Setuptools. This applies to ``setup.py install`` invocations 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.
|
|
|
|
1. Uninstall and reinstall Setuptools. Run ``pip uninstall -y setuptools`` for
|
|
the relevant environment. Repeat until there is no Setuptools installed.
|
|
Then ``pip install setuptools``.
|
|
2. 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).
|
|
3. 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.
|
|
4. Reach out to your local support groups. There's a good chance someone
|
|
nearby has the expertise and willingness to help.
|
|
5. If all else fails, `file this template
|
|
<https://github.com/pypa/setuptools/issues/new?assignees=&labels=Python+2&template=setuptools-warns-about-python-2-incompatibility.md&title=Incompatible+install+in+(summarize+your+environment)>`_
|
|
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.
|