-
Notifications
You must be signed in to change notification settings - Fork 66
Description
What happens?
I wanted to try making a proof of concept for #370. To do this, I need a python 3.14 dev environment. So I started following https://duckdb.org/docs/stable/dev/building/python, checked out the 1.5 branch (which looks like where development is happening), and ran uv sync --no-install-project --python 3.14 (on macOS). This gave:
Error Log
$ uv sync --no-install-project --python 3.14
Using CPython 3.14.2 interpreter at: /opt/homebrew/opt/[email protected]/bin/python3.14
Removed virtual environment at: .venv
Creating virtual environment at: .venv
× No solution found when resolving dependencies for split (markers: python_full_version >= '3.14' and platform_machine == 'ARM64' and sys_platform
│ == 'win32'):
╰─▶ Because only the following versions of torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32')
or (python_full_version < '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and
platform_machine == 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform ==
'win32') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'win32')} are available:
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}<=2.2.2
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.2.2+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.3.0
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.3.0+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.3.1
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.3.1+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.4.0
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.4.0+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.4.1
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.4.1+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.5.0
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.5.0+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.5.1
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.5.1+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.6.0
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.6.0+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.7.0
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.7.0+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.7.1
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.7.1+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.8.0
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.8.0+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.9.0
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.9.0+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.9.1
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.9.1+cpu
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.10.0
torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14' and
sys_platform != 'darwin' and sys_platform != 'win32')}==2.10.0+cpu
and torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32') or (python_full_version < '3.14' and
platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform
== 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32') or (python_full_version < '3.14'
and sys_platform != 'darwin' and sys_platform != 'win32')}>=2.2.2 has no `python_full_version >= '3.11' and platform_machine == 'ARM64' and
sys_platform == 'win32'`-compatible wheels, we can conclude that torch{(python_full_version >= '3.12' and python_full_version < '3.14' and
sys_platform == 'win32') or (python_full_version < '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version
< '3.13' and platform_machine == 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and
sys_platform == 'win32') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'win32')}>=2.2.2 cannot be used.
And because duckdb:dev depends on torch{(python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'win32')
or (python_full_version < '3.14' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and
platform_machine == 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform ==
'win32') or (python_full_version < '3.14' and sys_platform != 'darwin' and sys_platform != 'win32')}>=2.2.2 and your project requires duckdb:dev,
we can conclude that your project's requirements are unsatisfiable.
hint: The resolution failed for an environment that is not the current one, consider limiting the environments with `tool.uv.environments`.
Which if I am interpreting right, is caused by this line:
"torch>=2.2.2; python_version < '3.14' and ( sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.13' ) and ( sys_platform != 'win32' or platform_machine != 'ARM64' or python_version > '3.11' )",
in the test dependency group in our pyproject.toml
If I understand pytorch/pytorch#156856 and https://github.com/pytorch/pytorch/releases/tag/v2.10.0 correctly, then pytorch>=2.10.0 should work with python 3.14. Can we adjust our above version requirement so that my UV successfully pulls in this new pytorch version, so that I can use 3.14 for dev?
To Reproduce
(on MacOS):
uv sync --no-install-project --python 3.14
I'm not sure if there are uv flags where you can mock being on macOS? I tried all variations of
uv sync --no-install-project --python 3.14 --python-platform [all of linux, macos, windows]
and I got a similar error for all of them. So not sure if I am providing the flags wrong, or if we truly can't resolve the deps on all platforms.
OS:
OSX 26.3.1
DuckDB Package Version:
main
Python Version:
3.14
Full Name:
Nick Crews
Affiliation:
Ship Creek Group
What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.
I have tested with a source build
Did you include all relevant data sets for reproducing the issue?
Yes
Did you include all code required to reproduce the issue?
- Yes, I have
Did you include all relevant configuration to reproduce the issue?
- Yes, I have