Skip to content

Unexpected dependency resolving with platform_machine and --python-platform #16576

@schlamar

Description

@schlamar

Summary

Passing --python 3.9 --python-platform i686-pc-windows-msvc to uv results in different dependency resolving than using --python cpython-3.9-windows-x86-none.

Minimal example pyproject.toml

[project]
name = "test"
version = "0.1"
dependencies = [
    "greenlet >= 1;(platform_machine=='aarch64' or (platform_machine=='ppc64le' or (platform_machine=='x86_64' or (platform_machine=='amd64' or (platform_machine=='AMD64' or (platform_machine=='win32' or platform_machine=='WIN32'))))))",
]

Note: this is a real world example extracted from SQLAlchemy: https://github.com/sqlalchemy/sqlalchemy/blob/rel_2_0/setup.cfg#L41

Running uv sync --python cpython-3.9-windows-x86-none results in greenlet getting installed. Running uv sync --python 3.9 --python-platform i686-pc-windows-msvc greenlet is missing.

I would have expected that both commands would behave exactly the same and greenlet is getting installed in both cases.

Platform

Windows 11 x86_64

Version

uv 0.9.7 (0adb444 2025-10-30)

Python version

Python 3.9.13

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingwindowsSpecific to the Windows platform

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions