Skip to content

Commit

Permalink
fixed uv can't create .venv for cpython-x86 on Windows (#2707)
Browse files Browse the repository at this point in the history
Adaptation to the win32 platform is added.

https://docs.python.org/3/library/sysconfig.html#sysconfig.get_platform


## Summary

fixed uv can't create .venv for cpython-x86 on Windows 

[uv can't create .venv for cpython-x86 on Windows
](astral-sh/rye#952)

---------

Co-authored-by: Nashan <34827878+zhuang1234@users.noreply.github.com>
  • Loading branch information
Zander-1024 and Zander-1024 authored Apr 3, 2024
1 parent 684f790 commit 4b2e679
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
26 changes: 26 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -543,6 +543,32 @@ jobs:
- name: "Validate global Python install"
run: py -3.10 ./scripts/check_system_python.py --uv ./uv.exe

system-test-windows-x86-python-310:
needs: build-binary-windows
name: "check system | python3.10 on windows x86"
runs-on: windows-latest
env:
# Avoid debug build stack overflows.
UV_STACK_SIZE: 2000000 # 2 megabyte, double the default on windows
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.10"
architecture: "x86"

- name: "Download binary"
uses: actions/download-artifact@v4
with:
name: uv-windows-${{ github.sha }}

- name: "Print Python path"
run: echo $(which python)

- name: "Validate global Python install"
run: python ./scripts/check_system_python.py --uv ./uv.exe

system-test-windows-python-313:
needs: build-binary-windows
name: "check system | python3.13 on windows"
Expand Down
12 changes: 11 additions & 1 deletion crates/uv-interpreter/python/get_interpreter_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,17 @@ def get_operating_system_and_architecture():
"""
# https://github.com/pypa/packaging/blob/cc938f984bbbe43c5734b9656c9837ab3a28191f/src/packaging/_musllinux.py#L84
# Note that this is not `os.name`.
[operating_system, version_arch] = sysconfig.get_platform().split("-", 1)
# https://docs.python.org/3/library/sysconfig.html#sysconfig.get_platform
# windows x86 will return win32
platform_info = sysconfig.get_platform().split("-", 1)
if len(platform_info) == 1:
if platform_info[0] == "win32":
operating_system, version_arch = "win", "i386"
else:
# unknown_operating_system will flow to the final error print
operating_system, version_arch = platform_info[0], ""
else:
[operating_system, version_arch] = platform_info
if "-" in version_arch:
# Ex: macosx-11.2-arm64
version, architecture = version_arch.rsplit("-", 1)
Expand Down

0 comments on commit 4b2e679

Please sign in to comment.