Open
Description
Describe the bug
py7zr
installation fails on python 3.13 because 2 of its dependencies do not have wheels for python 3.13:
This means that installing py7zr requires an environment that can build those dependencies.
To Reproduce
$ python --version
Python 3.13.2
$ python -m pip list
Package Version
------- -------
pip 25.0.1
$ python -m pip install py7zr
Collecting py7zr
Downloading py7zr-0.22.0-py3-none-any.whl.metadata (16 kB)
Collecting texttable (from py7zr)
Using cached texttable-1.7.0-py2.py3-none-any.whl.metadata (9.8 kB)
Collecting pycryptodomex>=3.16.0 (from py7zr)
Downloading pycryptodomex-3.22.0-cp37-abi3-win_amd64.whl.metadata (3.4 kB)
Collecting pyzstd>=0.15.9 (from py7zr)
Downloading pyzstd-0.16.2-cp313-cp313-win_amd64.whl.metadata (2.5 kB)
Collecting pyppmd<1.2.0,>=1.1.0 (from py7zr)
Downloading pyppmd-1.1.1.tar.gz (1.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 10.2 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting pybcj<1.1.0,>=1.0.0 (from py7zr)
Downloading pybcj-1.0.3-cp313-cp313-win_amd64.whl.metadata (4.0 kB)
Collecting multivolumefile>=0.2.3 (from py7zr)
Using cached multivolumefile-0.2.3-py3-none-any.whl.metadata (6.3 kB)
Collecting inflate64<1.1.0,>=1.0.0 (from py7zr)
Downloading inflate64-1.0.1.tar.gz (896 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 896.1/896.1 kB 8.5 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting brotli>=1.1.0 (from py7zr)
Downloading Brotli-1.1.0-cp313-cp313-win_amd64.whl.metadata (5.6 kB)
Collecting psutil (from py7zr)
Downloading psutil-7.0.0-cp37-abi3-win_amd64.whl.metadata (23 kB)
Downloading py7zr-0.22.0-py3-none-any.whl (67 kB)
Downloading Brotli-1.1.0-cp313-cp313-win_amd64.whl (358 kB)
Using cached multivolumefile-0.2.3-py3-none-any.whl (17 kB)
Downloading pybcj-1.0.3-cp313-cp313-win_amd64.whl (24 kB)
Downloading pycryptodomex-3.22.0-cp37-abi3-win_amd64.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 11.2 MB/s eta 0:00:00
Downloading pyzstd-0.16.2-cp313-cp313-win_amd64.whl (245 kB)
Downloading psutil-7.0.0-cp37-abi3-win_amd64.whl (244 kB)
Using cached texttable-1.7.0-py2.py3-none-any.whl (10 kB)
Building wheels for collected packages: inflate64, pyppmd
Building wheel for inflate64 (pyproject.toml) ... done
Created wheel for inflate64: filename=inflate64-1.0.1-cp313-cp313-win_amd64.whl size=35336 sha256=7e31540933b086a93e3c5e45a89d0e8dd4dca12c91ea387c3016b52ca6f41bbb
Stored in directory: c:\users\raven\appdata\local\pip\cache\wheels\be\f7\79\7698a9ba6dff4c48de5b0b868634c8d4453a9e699d5962f69e
Building wheel for pyppmd (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for pyppmd (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [122 lines of output]
C:\Users\raven\AppData\Local\Temp\pip-build-env-36n2bhlp\overlay\Lib\site-packages\setuptools_scm\git.py:310: UserWarning: git archive did not support describe output
warnings.warn("git archive did not support describe output")
C:\Users\raven\AppData\Local\Temp\pip-build-env-36n2bhlp\overlay\Lib\site-packages\setuptools_scm\git.py:328: UserWarning: unprocessed git archival found (no export subst applied)
warnings.warn("unprocessed git archival found (no export subst applied)")
C:\Users\raven\AppData\Local\Temp\pip-build-env-36n2bhlp\overlay\Lib\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`.
By 2026-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)
C:\Users\raven\AppData\Local\Temp\pip-build-env-36n2bhlp\overlay\Lib\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 :: GNU Lesser General Public License v2 or later (LGPLv2+)
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
dist._finalize_license_expression()
C:\Users\raven\AppData\Local\Temp\pip-build-env-36n2bhlp\overlay\Lib\site-packages\setuptools\dist.py:760: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
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.win-amd64-cpython-313\pyppmd
copying src\pyppmd\__init__.py -> build\lib.win-amd64-cpython-313\pyppmd
creating build\lib.win-amd64-cpython-313\pyppmd\c
copying src\pyppmd\c\c_ppmd.py -> build\lib.win-amd64-cpython-313\pyppmd\c
running egg_info
writing src\pyppmd.egg-info\PKG-INFO
writing dependency_links to src\pyppmd.egg-info\dependency_links.txt
writing requirements to src\pyppmd.egg-info\requires.txt
writing top-level names to src\pyppmd.egg-info\top_level.txt
writing manifest file 'src\pyppmd.egg-info\SOURCES.txt'
ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any
reading manifest file 'src\pyppmd.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'tox.ini'
warning: no previously-included files found matching '.gitignore'
warning: no previously-included files found matching '.gitattributes'
warning: no previously-included files found matching '.woodpecker.yml'
no previously-included directories found matching 'ci'
no previously-included directories found matching 'issue_template'
adding license file 'LICENSE'
writing manifest file 'src\pyppmd.egg-info\SOURCES.txt'
C:\Users\raven\AppData\Local\Temp\pip-build-env-36n2bhlp\overlay\Lib\site-packages\setuptools\command\build_py.py:212: _Warning: Package 'pyppmd.cffi' is absent from the `packages` configuration.
!!
********************************************************************************
############################
# Package would be ignored #
############################
Python recognizes 'pyppmd.cffi' as an importable package[^1],
but it is absent from setuptools' `packages` configuration.
This leads to an ambiguous overall configuration. If you want to distribute this
package, please make sure that 'pyppmd.cffi' is explicitly added
to the `packages` configuration field.
Alternatively, you can also rely on setuptools' discovery methods
(for example by using `find_namespace_packages(...)`/`find_namespace:`
instead of `find_packages(...)`/`find:`).
You can read more about "package discovery" on setuptools documentation page:
- https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
If you don't want 'pyppmd.cffi' to be distributed and are
already explicitly excluding 'pyppmd.cffi' via
`find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
you can try to use `exclude_package_data`, or `include-package-data=False` in
combination with a more fine grained `package-data` configuration.
You can read more about "package data files" on setuptools documentation page:
- https://setuptools.pypa.io/en/latest/userguide/datafiles.html
[^1]: For Python, any directory (with suitable naming) can be imported,
even if it does not contain any `.py` files.
On the other hand, currently there is no concept of package data
directory, all directories are treated like packages.
********************************************************************************
!!
check.warn(importable)
copying src\pyppmd\py.typed -> build\lib.win-amd64-cpython-313\pyppmd
creating build\lib.win-amd64-cpython-313\pyppmd\cffi
copying src\pyppmd\cffi\cffi_ppmd.py -> build\lib.win-amd64-cpython-313\pyppmd\cffi
running build_ext
building 'pyppmd.c._ppmd' extension
creating build\temp.win-amd64-cpython-313\Release\src\ext
creating build\temp.win-amd64-cpython-313\Release\src\lib\buffer
creating build\temp.win-amd64-cpython-313\Release\src\lib\ppmd
"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Isrc/lib/ppmd -Isrc/lib/buffer -IC:\Users\raven\Documents\GitHub\junkenv\.venv\include -IC:\Users\raven\AppData\Roaming\uv\python\cpython-3.13.2-windows-x86_64-none\include -IC:\Users\raven\AppData\Roaming\uv\python\cpython-3.13.2-windows-x86_64-none\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" /Tcsrc/ext/_ppmdmodule.c /Fobuild\temp.win-amd64-cpython-313\Release\src\ext\_ppmdmodule.obj /GF /Gy
_ppmdmodule.c
src/ext/_ppmdmodule.c(856): error C2059: syntax error: '}'
src/ext/_ppmdmodule.c(1581): error C2059: syntax error: '}'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.38.33130\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pyppmd
Successfully built inflate64
Failed to build pyppmd
ERROR: Failed to build installable wheels for some pyproject.toml based projects (pyppmd)
Expected behavior
Publish pyppmd and inflate64 wheels so py7zr installation works on 3.13.
Environment (please complete the following information):
- OS: Windows 11
- Python 3.13
- py7zr version: 0.22.0
Metadata
Metadata
Assignees
Labels
No labels