Attaching the full Dockerfile too which reproduces the issue.
$ uv pip install --break-system-packages --no-cache --no-build-isolation --no-binary=vptq git+https://github.com/microsoft/VPTQ.git
Using Python 3.13.12 environment at: /opt/venv
Resolved 88 packages in 1.95s
Updating https://github.com/microsoft/VPTQ.git (HEAD)
Downloading pydantic-core (2.0MiB)
Downloading pyarrow (45.4MiB)
Downloading plotly (14.5MiB)
Downloading scikit-learn (8.5MiB)
Downloading tokenizers (3.1MiB)
Downloading transformers (10.2MiB)
Downloading gradio (41.0MiB)
Downloading brotli (1.4MiB)
Downloading aiohttp (1.7MiB)
Downloading hf-xet (4.0MiB)
Downloaded brotli
Downloaded aiohttp
Downloaded pydantic-core
Downloaded tokenizers
Downloaded hf-xet
Downloaded scikit-learn
Downloaded transformers
Downloaded plotly
Downloaded gradio
Downloaded pyarrow
Updated https://github.com/microsoft/VPTQ.git (942c3151026c26a5fae62807c65c630ff19e3893)
Building vptq @ git+https://github.com/microsoft/VPTQ.git@942c3151026c26a5fae62807c65c630ff19e3893
× Failed to build `vptq @
│ git+https://github.com/microsoft/VPTQ.git@942c3151026c26a5fae62807c65c630ff19e3893`
├─▶ The build backend returned an error
╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
[stdout]
running bdist_wheel
running build
running build_py
creating build/lib.linux-x86_64-cpython-313/vptq
copying vptq/__main__.py -> build/lib.linux-x86_64-cpython-313/vptq
copying vptq/__init__.py -> build/lib.linux-x86_64-cpython-313/vptq
copying vptq/app.py -> build/lib.linux-x86_64-cpython-313/vptq
copying vptq/app_utils.py -> build/lib.linux-x86_64-cpython-313/vptq
copying vptq/app_gpu.py -> build/lib.linux-x86_64-cpython-313/vptq
running egg_info
creating vptq.egg-info
writing vptq.egg-info/PKG-INFO
writing dependency_links to vptq.egg-info/dependency_links.txt
writing requirements to vptq.egg-info/requires.txt
writing top-level names to vptq.egg-info/top_level.txt
writing manifest file 'vptq.egg-info/SOURCES.txt'
reading manifest file 'vptq.egg-info/SOURCES.txt'
adding license file 'LICENSE'
writing manifest file 'vptq.egg-info/SOURCES.txt'
creating build/lib.linux-x86_64-cpython-313/vptq/layers
copying vptq/layers/__init__.py ->
build/lib.linux-x86_64-cpython-313/vptq/layers
copying vptq/layers/model_base.py ->
build/lib.linux-x86_64-cpython-313/vptq/layers
copying vptq/layers/utils.py ->
build/lib.linux-x86_64-cpython-313/vptq/layers
copying vptq/layers/vqlinear.py ->
build/lib.linux-x86_64-cpython-313/vptq/layers
creating build/lib.linux-x86_64-cpython-313/vptq/ops
copying vptq/ops/__init__.py ->
build/lib.linux-x86_64-cpython-313/vptq/ops
copying vptq/ops/quant_gemm.py ->
build/lib.linux-x86_64-cpython-313/vptq/ops
creating build/lib.linux-x86_64-cpython-313/vptq/tools
copying vptq/tools/__init__.py ->
build/lib.linux-x86_64-cpython-313/vptq/tools
copying vptq/tools/pre_process.py ->
build/lib.linux-x86_64-cpython-313/vptq/tools
creating build/lib.linux-x86_64-cpython-313/vptq/tools/hessian
copying vptq/tools/hessian/__init__.py ->
build/lib.linux-x86_64-cpython-313/vptq/tools/hessian
creating build/lib.linux-x86_64-cpython-313/vptq/utils
copying vptq/utils/__init__.py ->
build/lib.linux-x86_64-cpython-313/vptq/utils
copying vptq/utils/pack.py ->
build/lib.linux-x86_64-cpython-313/vptq/utils
copying vptq/__main__.py -> build/lib.linux-x86_64-cpython-313/vptq
copying vptq/__init__.py -> build/lib.linux-x86_64-cpython-313/vptq
copying vptq/app.py -> build/lib.linux-x86_64-cpython-313/vptq
copying vptq/app_utils.py -> build/lib.linux-x86_64-cpython-313/vptq
copying vptq/app_gpu.py -> build/lib.linux-x86_64-cpython-313/vptq
running build_ext
[stderr]
/opt/venv/lib/python3.13/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 :: MIT License
See
https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
for details.
********************************************************************************
!!
dist._finalize_license_expression()
/opt/venv/lib/python3.13/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 :: MIT License
See
https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
for details.
********************************************************************************
!!
self._finalize_license_expression()
/opt/venv/lib/python3.13/site-packages/setuptools/command/build_py.py:215:
_Warning: Package 'vptq.layers' is absent from the `packages`
configuration.
!!
********************************************************************************
############################
# Package would be ignored #
############################
Python recognizes 'vptq.layers' 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 'vptq.layers' 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 'vptq.layers' to be distributed and are
already explicitly excluding 'vptq.layers' 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)
/opt/venv/lib/python3.13/site-packages/setuptools/command/build_py.py:215:
_Warning: Package 'vptq.ops' is absent from the `packages`
configuration.
!!
********************************************************************************
############################
# Package would be ignored #
############################
Python recognizes 'vptq.ops' 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 'vptq.ops' 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 'vptq.ops' to be distributed and are
already explicitly excluding 'vptq.ops' 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)
/opt/venv/lib/python3.13/site-packages/setuptools/command/build_py.py:215:
_Warning: Package 'vptq.tools' is absent from the `packages`
configuration.
!!
********************************************************************************
############################
# Package would be ignored #
############################
Python recognizes 'vptq.tools' 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 'vptq.tools' 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 'vptq.tools' to be distributed and are
already explicitly excluding 'vptq.tools' 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)
/opt/venv/lib/python3.13/site-packages/setuptools/command/build_py.py:215:
_Warning: Package 'vptq.tools.hessian' is absent from the `packages`
configuration.
!!
********************************************************************************
############################
# Package would be ignored #
############################
Python recognizes 'vptq.tools.hessian' 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 'vptq.tools.hessian' 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 'vptq.tools.hessian' to be distributed and are
already explicitly excluding 'vptq.tools.hessian' 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)
/opt/venv/lib/python3.13/site-packages/setuptools/command/build_py.py:215:
_Warning: Package 'vptq.utils' is absent from the `packages`
configuration.
!!
********************************************************************************
############################
# Package would be ignored #
############################
Python recognizes 'vptq.utils' 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 'vptq.utils' 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 'vptq.utils' to be distributed and are
already explicitly excluding 'vptq.utils' 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)
Traceback (most recent call last):
File "<string>", line 11, in <module>
wheel_filename =
backend.build_wheel("/tmp/.tmpZKeS5c/builds-v0/.tmpGDsIXe", {}, None)
File "/opt/venv/lib/python3.13/site-packages/setuptools/build_meta.py",
line 438, in build_wheel
return _build(['bdist_wheel'])
File "/opt/venv/lib/python3.13/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 "/opt/venv/lib/python3.13/site-packages/setuptools/build_meta.py",
line 410, in _build_with_temp_dir
self.run_setup()
~~~~~~~~~~~~~~^^
File "/opt/venv/lib/python3.13/site-packages/setuptools/build_meta.py",
line 317, in run_setup
exec(code, locals())
~~~~^^^^^^^^^^^^^^^^
File "<string>", line 286, in <module>
File "/opt/venv/lib/python3.13/site-packages/setuptools/__init__.py",
line 117, in setup
return distutils.core.setup(**attrs) # type: ignore[return-value]
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/core.py",
line 186, in setup
return run_commands(dist)
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/core.py",
line 202, in run_commands
dist.run_commands()
~~~~~~~~~~~~~~~~~^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/dist.py",
line 1000, in run_commands
self.run_command(cmd)
~~~~~~~~~~~~~~~~^^^^^
File "/opt/venv/lib/python3.13/site-packages/setuptools/dist.py", line
1107, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/dist.py",
line 1019, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/command/bdist_wheel.py",
line 370, in run
self.run_command("build")
~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/cmd.py",
line 341, in run_command
self.distribution.run_command(command)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/opt/venv/lib/python3.13/site-packages/setuptools/dist.py", line
1107, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/dist.py",
line 1019, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/command/build.py",
line 135, in run
self.run_command(cmd_name)
~~~~~~~~~~~~~~~~^^^^^^^^^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/cmd.py",
line 341, in run_command
self.distribution.run_command(command)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/opt/venv/lib/python3.13/site-packages/setuptools/dist.py", line
1107, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/dist.py",
line 1019, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/command/build_ext.py",
line 97, in run
_build_ext.run(self)
~~~~~~~~~~~~~~^^^^^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.py",
line 367, in run
self.build_extensions()
~~~~~~~~~~~~~~~~~~~~~^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.py",
line 483, in build_extensions
self._build_extensions_serial()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File
"/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.py",
line 509, in _build_extensions_serial
self.build_extension(ext)
~~~~~~~~~~~~~~~~~~~~^^^^^
File "<string>", line 123, in build_extension
File "<string>", line 41, in nvcc_threads
File "<string>", line 31, in get_cuda_bare_metal_version
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
Attaching the full Dockerfile too which reproduces the issue.
Dockerfile.txt