fixed uv can't create .venv for cpython-x86 on Windows (#2707)

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
](https://github.com/astral-sh/rye/issues/952)

---------

Co-authored-by: Nashan <34827878+zhuang1234@users.noreply.github.com>
This commit is contained in:
Zander 2024-04-03 09:45:53 +08:00 committed by GitHub
parent 684f790d5d
commit 4b2e67955f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 37 additions and 1 deletions

View file

@ -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"

View file

@ -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)