-
Notifications
You must be signed in to change notification settings - Fork 601
Open
Description
pkg_resources pkg_resources was deprecated in Setuptools v67.5.0. It was removed in Setuptools v82.0.0. It is used in setup.py. There is a pkg_resources migration guide. This causes the build to fail with setuptools 82 if cythonize is need:
* Getting build dependencies for wheel...
* Building wheel...
/usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated
!!
********************************************************************************
Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0).
By 2027-Feb-18, you need to update your project and remove deprecated calls
or your builds will no longer be supported.
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
corresp(dist, value, root_dir)
/usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: Apache Software License
License :: OSI Approved :: MIT License
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
dist._finalize_license_expression()
/usr/lib/python3.14/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: Apache Software License
License :: OSI Approved :: MIT License
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
self._finalize_license_expression()
running bdist_wheel
running build
running build_py
creating build/lib.linux-x86_64-cpython-314/uvloop
copying uvloop/_testbase.py -> build/lib.linux-x86_64-cpython-314/uvloop
copying uvloop/__init__.py -> build/lib.linux-x86_64-cpython-314/uvloop
copying uvloop/_noop.py -> build/lib.linux-x86_64-cpython-314/uvloop
copying uvloop/_version.py -> build/lib.linux-x86_64-cpython-314/uvloop
running egg_info
creating uvloop.egg-info
writing uvloop.egg-info/PKG-INFO
writing dependency_links to uvloop.egg-info/dependency_links.txt
writing requirements to uvloop.egg-info/requires.txt
writing top-level names to uvloop.egg-info/top_level.txt
writing manifest file 'uvloop.egg-info/SOURCES.txt'
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
main()
~~~~^^
File "/usr/lib/python3.14/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main
json_out["return_val"] = hook(**hook_input["kwargs"])
~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/pyproject_hooks/_in_process/_in_process.py", line 280, in build_wheel
return _build_backend().build_wheel(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
wheel_directory, config_settings, metadata_directory
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/setuptools/build_meta.py", line 438, in build_wheel
return _build(['bdist_wheel'])
File "/usr/lib/python3.14/site-packages/setuptools/build_meta.py", line 429, in _build
return self._build_with_temp_dir(
~~~~~~~~~~~~~~~~~~~~~~~~~^
cmd,
^^^^
...<3 lines>...
self._arbitrary_args(config_settings),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/setuptools/build_meta.py", line 410, in _build_with_temp_dir
self.run_setup()
~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/build_meta.py", line 317, in run_setup
exec(code, locals())
~~~~^^^^^^^^^^^^^^^^
File "<string>", line 240, in <module>
File "/usr/lib/python3.14/site-packages/setuptools/__init__.py", line 117, in setup
return distutils.core.setup(**attrs) # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/core.py", line 186, in setup
return run_commands(dist)
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
dist.run_commands()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 1000, in run_commands
self.run_command(cmd)
~~~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/dist.py", line 1107, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/command/bdist_wheel.py", line 370, in run
self.run_command("build")
~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
self.distribution.run_command(command)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/dist.py", line 1107, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
self.distribution.run_command(command)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/dist.py", line 1107, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/command/build_py.py", line 80, in run
self.build_package_data()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/command/build_py.py", line 172, in build_package_data
for target, srcfile in self._get_package_data_output_mapping():
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/command/build_py.py", line 164, in _get_package_data_output_mapping
for package, src_dir, build_dir, filenames in self.data_files:
^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/command/build_py.py", line 90, in __getattr__
self.data_files = self._get_data_files()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/command/build_py.py", line 96, in _get_data_files
self.analyze_manifest()
~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/command/build_py.py", line 194, in analyze_manifest
self.run_command('egg_info')
~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
self.distribution.run_command(command)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/dist.py", line 1107, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/command/egg_info.py", line 312, in run
self.find_sources()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/command/egg_info.py", line 320, in find_sources
mm.run()
~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/command/egg_info.py", line 542, in run
self.add_defaults()
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/command/egg_info.py", line 580, in add_defaults
sdist.add_defaults(self)
~~~~~~~~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.14/site-packages/setuptools/command/sdist.py", line 110, in add_defaults
super().add_defaults()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/command/sdist.py", line 245, in add_defaults
self._add_defaults_ext()
~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/command/sdist.py", line 329, in _add_defaults_ext
build_ext = self.get_finalized_command('build_ext')
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/cmd.py", line 318, in get_finalized_command
cmd_obj.ensure_finalized()
~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/setuptools/_distutils/cmd.py", line 119, in ensure_finalized
self.finalize_options()
~~~~~~~~~~~~~~~~~~~~~^^
File "<string>", line 111, in finalize_options
ModuleNotFoundError: No module named 'pkg_resources'
ERROR Backend subprocess exited when trying to invoke build_wheel
pkg_resources use might be replaced by something like:
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -57,6 +57,7 @@ docs = [
[build-system]
requires = [
"setuptools>=60",
+ "packaging",
"wheel",
"Cython~=3.1",
]
--- a/setup.py
+++ b/setup.py
@@ -108,7 +108,7 @@ class uvloop_build_ext(build_ext):
need_cythonize = True
if need_cythonize:
- import pkg_resources
+ from packaging.requirements import Requirement
# Double check Cython presence in case setup_requires
# didn't go into effect (most likely because someone
@@ -121,8 +121,8 @@ class uvloop_build_ext(build_ext):
'please install {} to compile uvloop from source'.format(
CYTHON_DEPENDENCY))
- cython_dep = pkg_resources.Requirement.parse(CYTHON_DEPENDENCY)
- if Cython.__version__ not in cython_dep:
+ cython_dep = Requirement(CYTHON_DEPENDENCY)
+ if not cython_dep.specifier.contains(Cython.__version__):
raise RuntimeError(
'uvloop requires {}, got Cython=={}'.format(
CYTHON_DEPENDENCY, Cython.__version__Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels