Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uv add appears to use the wrong python when requires-python, package, and .venv python version conflict #4373

Closed
WillDuke opened this issue Jun 18, 2024 · 6 comments · Fixed by #4381
Assignees
Labels
preview Experimental behavior question Asking for clarification or support

Comments

@WillDuke
Copy link

I tried the running the following snippet with uv v0.2.12 on MacOS (x86_64):

hatch new uv-mre uv-mre
cd uv-mre
uv cache clear
UV_PREVIEW=1 uv --verbose venv --python 3.12
UV_PREVIEW=1 uv --verbose add numpy

The venv command fetches a standalone build of python 3.12 and succeeds at creating a virtual environment. uv add appears to fetch wheels for the python on my path (3.10) instead of the python in the virtual environment (3.12) and then fails to build numpy. In contrast, uv pip install numpy succeeds in the same environment.

Log

Clearing cache at: /Users/Will/Library/Caches/uv
Removed 6 files (3.6KiB)
DEBUG uv 0.2.12 (b8c0391 2024-06-17)
DEBUG Searching for Python 3.12 in search path or managed toolchains
DEBUG Searching for managed toolchains at /Users/Will/Library/Application Support/uv/toolchains
DEBUG Found cpython 3.10.11 at /Users/Will/.pyenv/shims/python3 (search path)
DEBUG Found cpython 3.10.11 at /Users/Will/.pyenv/shims/python (search path)
DEBUG Found cpython 3.11.4 at /usr/local/bin/python3 (search path)
DEBUG Found cpython 3.9.6 at /usr/bin/python3 (search path)
DEBUG Requested Python not found, checking for available download...
DEBUG Using request timeout of 30s
INFO Fetching requested toolchain...
DEBUG Downloading https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.12.3%2B20240415-x86_64-apple-darwin-pgo%2Blto-full.tar.zst to temporary location /Users/Will/Library/Application Support/uv/toolchains/.tmp9fBnEK
DEBUG Extracting cpython-3.12.3%2B20240415-x86_64-apple-darwin-pgo%2Blto-full.tar.zst
DEBUG Moving /Users/Will/Library/Application Support/uv/toolchains/.tmp9fBnEK/python to /Users/Will/Library/Application Support/uv/toolchains/cpython-3.12.3-macos-x86_64-none
Using Python 3.12.3 interpreter at: /Users/Will/Library/Application Support/uv/toolchains/cpython-3.12.3-macos-x86_64-none/install/bin/python3
Creating virtualenv at: .venv
Activate with: source .venv/bin/activate
DEBUG uv 0.2.12 (b8c0391 2024-06-17)
DEBUG Found project root: /Users/Will/Projects/uv-mre/uv-mre
DEBUG No workspace root found, using project root
DEBUG Interpreter meets the project Requires-Python constraint >=3.8
DEBUG Using request timeout of 30s
DEBUG Using request timeout of 30s
DEBUG Acquired lock for /Users/Will/Library/Caches/uv/built-wheels-v3/editable/95e5222d70dab9b6
DEBUG Preparing metadata for: uv-mre @ file:///Users/Will/Projects/uv-mre/uv-mre
DEBUG No static PKG-INFO available for: uv-mre @ file:///Users/Will/Projects/uv-mre/uv-mre (MissingPkgInfo)
DEBUG No static pyproject.toml available for: uv-mre @ file:///Users/Will/Projects/uv-mre/uv-mre (PyprojectToml(DynamicField("version")))
INFO Ignoring empty directory
DEBUG Solving with installed Python version: 3.12.3
DEBUG Adding direct dependency: hatchling*
DEBUG No cache entry for: https://pypi.org/simple/hatchling/
DEBUG Searching for a compatible version of hatchling ()
DEBUG Selecting: hatchling==1.24.2 (hatchling-1.24.2-py3-none-any.whl)
DEBUG No cache entry for: https://files.pythonhosted.org/packages/5f/20/b890241570ac3ba6508febab3104eeb1acd7ffba1bd3447190f56151f1bc/hatchling-1.24.2-py3-none-any.whl.metadata
DEBUG Adding transitive dependency for hatchling==1.24.2: packaging>=23.2
DEBUG Adding transitive dependency for hatchling==1.24.2: pathspec>=0.10.1
DEBUG Adding transitive dependency for hatchling==1.24.2: pluggy>=1.0.0
DEBUG Adding transitive dependency for hatchling==1.24.2: trove-classifiers

DEBUG No cache entry for: https://pypi.org/simple/packaging/
DEBUG No cache entry for: https://pypi.org/simple/pathspec/
DEBUG No cache entry for: https://pypi.org/simple/pluggy/
DEBUG No cache entry for: https://pypi.org/simple/trove-classifiers/
DEBUG Searching for a compatible version of packaging (>=23.2)
DEBUG Selecting: packaging==24.1 (packaging-24.1-py3-none-any.whl)
DEBUG No cache entry for: https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl.metadata
DEBUG Searching for a compatible version of pathspec (>=0.10.1)
DEBUG Selecting: pathspec==0.12.1 (pathspec-0.12.1-py3-none-any.whl)
DEBUG No cache entry for: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl.metadata
DEBUG No cache entry for: https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl.metadata
DEBUG Searching for a compatible version of pluggy (>=1.0.0)
DEBUG Selecting: pluggy==1.5.0 (pluggy-1.5.0-py3-none-any.whl)
DEBUG No cache entry for: https://files.pythonhosted.org/packages/00/87/c8ccf265dea5f96a1e930e69b97214255bbe284ca78e450aeaba7d021bdb/trove_classifiers-2024.5.22-py3-none-any.whl.metadata
DEBUG Searching for a compatible version of trove-classifiers ()
DEBUG Selecting: trove-classifiers==2024.5.22 (trove_classifiers-2024.5.22-py3-none-any.whl)
DEBUG Tried 5 versions: hatchling 1, packaging 1, pathspec 1, pluggy 1, trove-classifiers 1
DEBUG Installing in hatchling==1.24.2, packaging==24.1, pathspec==0.12.1, pluggy==1.5.0, trove-classifiers==2024.5.22 in /Users/Will/Library/Caches/uv/environments-v0/.tmpSSWgyx
DEBUG Identified uncached requirement: hatchling==1.24.2
DEBUG Identified uncached requirement: packaging==24.1
DEBUG Identified uncached requirement: pathspec==0.12.1
DEBUG Identified uncached requirement: pluggy==1.5.0
DEBUG Identified uncached requirement: trove-classifiers==2024.5.22
DEBUG Downloading and building requirements for build: hatchling==1.24.2, packaging==24.1, pathspec==0.12.1, pluggy==1.5.0, trove-classifiers==2024.5.22
DEBUG No cache entry for: https://files.pythonhosted.org/packages/5f/20/b890241570ac3ba6508febab3104eeb1acd7ffba1bd3447190f56151f1bc/hatchling-1.24.2-py3-none-any.whl
DEBUG No cache entry for: https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl
DEBUG No cache entry for: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl
DEBUG No cache entry for: https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl
DEBUG No cache entry for: https://files.pythonhosted.org/packages/00/87/c8ccf265dea5f96a1e930e69b97214255bbe284ca78e450aeaba7d021bdb/trove_classifiers-2024.5.22-py3-none-any.whl
DEBUG Installing build requirements: pathspec==0.12.1, packaging==24.1, pluggy==1.5.0, trove-classifiers==2024.5.22, hatchling==1.24.2
DEBUG Calling hatchling.build.get_requires_for_build_editable()
DEBUG Installing extra requirements for build backend
DEBUG Solving with installed Python version: 3.12.3
DEBUG Adding direct dependency: hatchling

DEBUG Adding direct dependency: editables>=0.3, <1.dev0
DEBUG Searching for a compatible version of hatchling ()
DEBUG Selecting: hatchling==1.24.2 (hatchling-1.24.2-py3-none-any.whl)
DEBUG Adding transitive dependency for hatchling==1.24.2: packaging>=23.2
DEBUG Adding transitive dependency for hatchling==1.24.2: pathspec>=0.10.1
DEBUG Adding transitive dependency for hatchling==1.24.2: pluggy>=1.0.0
DEBUG Adding transitive dependency for hatchling==1.24.2: trove-classifiers

DEBUG No cache entry for: https://pypi.org/simple/editables/
DEBUG Searching for a compatible version of editables (>=0.3, <1.dev0)
DEBUG Selecting: editables==0.5 (editables-0.5-py3-none-any.whl)
DEBUG No cache entry for: https://files.pythonhosted.org/packages/6b/be/0f2f4a5e8adc114a02b63d92bf8edbfa24db6fc602fca83c885af2479e0e/editables-0.5-py3-none-any.whl.metadata
DEBUG Searching for a compatible version of packaging (>=23.2)
DEBUG Selecting: packaging==24.1 (packaging-24.1-py3-none-any.whl)
DEBUG Searching for a compatible version of pathspec (>=0.10.1)
DEBUG Selecting: pathspec==0.12.1 (pathspec-0.12.1-py3-none-any.whl)
DEBUG Searching for a compatible version of pluggy (>=1.0.0)
DEBUG Selecting: pluggy==1.5.0 (pluggy-1.5.0-py3-none-any.whl)
DEBUG Searching for a compatible version of trove-classifiers ()
DEBUG Selecting: trove-classifiers==2024.5.22 (trove_classifiers-2024.5.22-py3-none-any.whl)
DEBUG Tried 6 versions: editables 1, hatchling 1, packaging 1, pathspec 1, pluggy 1, trove-classifiers 1
DEBUG Installing in editables==0.5, hatchling==1.24.2, packaging==24.1, pathspec==0.12.1, pluggy==1.5.0, trove-classifiers==2024.5.22 in /Users/Will/Library/Caches/uv/environments-v0/.tmpSSWgyx
DEBUG Identified uncached requirement: editables==0.5
DEBUG Requirement already installed: hatchling==1.24.2
DEBUG Requirement already installed: packaging==24.1
DEBUG Requirement already installed: pathspec==0.12.1
DEBUG Requirement already installed: pluggy==1.5.0
DEBUG Requirement already installed: trove-classifiers==2024.5.22
DEBUG Downloading and building requirement for build: editables==0.5
DEBUG No cache entry for: https://files.pythonhosted.org/packages/6b/be/0f2f4a5e8adc114a02b63d92bf8edbfa24db6fc602fca83c885af2479e0e/editables-0.5-py3-none-any.whl
DEBUG Installing build requirement: editables==0.5
DEBUG Calling hatchling.build.prepare_metadata_for_build_editable()
DEBUG Prepared metadata for: uv-mre @ file:///Users/Will/Projects/uv-mre/uv-mre
DEBUG No workspace root found, using project root
DEBUG Solving with installed Python version: 3.12.3
DEBUG Solving with target Python version: >=3.8
DEBUG Adding direct dependency: uv-mre

DEBUG Searching for a compatible version of uv-mre @ file:///Users/Will/Projects/uv-mre/uv-mre ()
DEBUG Adding transitive dependency for uv-mre==0.0.1: numpy

DEBUG No cache entry for: https://pypi.org/simple/numpy/
DEBUG Searching for a compatible version of numpy ()
DEBUG No compatible version found for: Python
DEBUG Searching for a compatible version of numpy (<2.0.0 | >2.0.0)
DEBUG Searching for a compatible version of numpy (<1.26.4 | >1.26.4, <2.0.0 | >2.0.0)
DEBUG Searching for a compatible version of numpy (<1.26.3 | >1.26.3, <1.26.4 | >1.26.4, <2.0.0 | >2.0.0)
DEBUG Searching for a compatible version of numpy (<1.26.2 | >1.26.2, <1.26.3 | >1.26.3, <1.26.4 | >1.26.4, <2.0.0 | >2.0.0)
DEBUG Searching for a compatible version of numpy (<1.26.1 | >1.26.1, <1.26.2 | >1.26.2, <1.26.3 | >1.26.3, <1.26.4 | >1.26.4, <2.0.0 | >2.0.0)
DEBUG Searching for a compatible version of numpy (<1.26.0 | >1.26.0, <1.26.1 | >1.26.1, <1.26.2 | >1.26.2, <1.26.3 | >1.26.3, <1.26.4 | >1.26.4, <2.0.0 | >2.0.0)
DEBUG Searching for a compatible version of numpy (<1.25.2 | >1.25.2, <1.26.0 | >1.26.0, <1.26.1 | >1.26.1, <1.26.2 | >1.26.2, <1.26.3 | >1.26.3, <1.26.4 | >1.26.4, <2.0.0 | >2.0.0)
DEBUG Searching for a compatible version of numpy (<1.25.1 | >1.25.1, <1.25.2 | >1.25.2, <1.26.0 | >1.26.0, <1.26.1 | >1.26.1, <1.26.2 | >1.26.2, <1.26.3 | >1.26.3, <1.26.4 | >1.26.4, <2.0.0 | >2.0.0)
DEBUG Searching for a compatible version of numpy (<1.25.0 | >1.25.0, <1.25.1 | >1.25.1, <1.25.2 | >1.25.2, <1.26.0 | >1.26.0, <1.26.1 | >1.26.1, <1.26.2 | >1.26.2, <1.26.3 | >1.26.3, <1.26.4 | >1.26.4, <2.0.0 | >2.0.0)
DEBUG Selecting: numpy==1.24.4 (numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl)
DEBUG No cache entry for: https://files.pythonhosted.org/packages/6b/80/6cdfb3e275d95155a34659163b83c09e3a3ff9f1456880bec6cc63d71083/numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl.metadata
DEBUG No cache entry for: https://files.pythonhosted.org/packages/f3/23/7cc851bae09cf4db90d42a701dfe525780883ada86bece45e3da7a07e76b/numpy-1.24.3-cp310-cp310-macosx_10_9_x86_64.whl.metadata
DEBUG No cache entry for: https://files.pythonhosted.org/packages/39/fd/217e9bf573f710827416e1e6f56a6355b90c2ce7fbf8b83d5729d5b2e0b6/numpy-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl.metadata
DEBUG No cache entry for: https://files.pythonhosted.org/packages/6e/77/7b69133bf0f3a6b0000cdb6133ff5292734182ca0cd107ad7ff4c46e7bc1/numpy-1.24.1-cp310-cp310-macosx_10_9_x86_64.whl.metadata
DEBUG No cache entry for: https://files.pythonhosted.org/packages/d5/4b/ee7fc0ade6f54df52ecaf99263961d2693a22590e775730e34f89d910e6a/numpy-1.24.0-cp310-cp310-macosx_10_9_x86_64.whl.metadata
DEBUG No cache entry for: https://files.pythonhosted.org/packages/0f/ae/dad4b8e7c65494cbbd1c063de114efaf9acd0f5f6171f044f0d4b6299787/numpy-1.23.5-cp310-cp310-macosx_10_9_x86_64.whl.metadata
DEBUG No cache entry for: https://files.pythonhosted.org/packages/07/08/417eabd93635695e69a18a336401b306da504dec032d537dbdc76577a569/numpy-1.23.4-cp310-cp310-macosx_10_9_x86_64.whl.metadata
DEBUG No cache entry for: https://files.pythonhosted.org/packages/3a/0c/8d8fe64dcfbeac1dabeb8ae74c8b697a18cf48adfced980291abcc266984/numpy-1.23.3-cp310-cp310-macosx_10_9_x86_64.whl.metadata
DEBUG Prefetching 10 numpy versions
DEBUG No cache entry for: https://files.pythonhosted.org/packages/7a/c3/38e826f1c0697e7c5f50ebcfc15672b53d5204c629f2203f4c018d6f39b0/numpy-1.23.2-cp310-cp310-macosx_10_9_x86_64.whl.metadata
DEBUG No cache entry for: https://files.pythonhosted.org/packages/c0/c2/8d58f3ccd1aa3b1eaa5c333a6748e225b45cf8748b13f052cbb3c811c996/numpy-1.23.1-cp310-cp310-macosx_10_9_x86_64.whl.metadata
DEBUG Tried 11 versions: numpy 10, uv-mre 1
Resolved 2 packages in 1.39s
DEBUG Using request timeout of 30s
DEBUG Identified uncached requirement: numpy==1.24.4
DEBUG Identified uncached requirement: uv-mre @ file:///Users/Will/Projects/uv-mre/uv-mre
DEBUG Acquired lock for /Users/Will/Library/Caches/uv/built-wheels-v3/editable/95e5222d70dab9b6
DEBUG Acquired lock for /Users/Will/Library/Caches/uv/built-wheels-v3/index/b2a7eb67d4c26b82/numpy/1.24.4
DEBUG Building: uv-mre @ file:///Users/Will/Projects/uv-mre/uv-mre
INFO Ignoring empty directory
DEBUG No cache entry for: https://files.pythonhosted.org/packages/a4/9b/027bec52c633f6556dba6b722d9a0befb40498b9ceddd29cbe67a45a127c/numpy-1.24.4.tar.gz
DEBUG Solving with installed Python version: 3.12.3
DEBUG Adding direct dependency: hatchling

DEBUG Found fresh response for: https://pypi.org/simple/hatchling/
DEBUG Searching for a compatible version of hatchling ()
DEBUG Selecting: hatchling==1.24.2 (hatchling-1.24.2-py3-none-any.whl)
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/5f/20/b890241570ac3ba6508febab3104eeb1acd7ffba1bd3447190f56151f1bc/hatchling-1.24.2-py3-none-any.whl.metadata
DEBUG Adding transitive dependency for hatchling==1.24.2: packaging>=23.2
DEBUG Adding transitive dependency for hatchling==1.24.2: pathspec>=0.10.1
DEBUG Adding transitive dependency for hatchling==1.24.2: pluggy>=1.0.0
DEBUG Adding transitive dependency for hatchling==1.24.2: trove-classifiers

DEBUG Found fresh response for: https://pypi.org/simple/pathspec/
DEBUG Found fresh response for: https://pypi.org/simple/pluggy/
DEBUG Found fresh response for: https://pypi.org/simple/packaging/
DEBUG Searching for a compatible version of packaging (>=23.2)
DEBUG Selecting: packaging==24.1 (packaging-24.1-py3-none-any.whl)
DEBUG Found fresh response for: https://pypi.org/simple/trove-classifiers/
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl.metadata
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl.metadata
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/00/87/c8ccf265dea5f96a1e930e69b97214255bbe284ca78e450aeaba7d021bdb/trove_classifiers-2024.5.22-py3-none-any.whl.metadata
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl.metadata
DEBUG Searching for a compatible version of pathspec (>=0.10.1)
DEBUG Selecting: pathspec==0.12.1 (pathspec-0.12.1-py3-none-any.whl)
DEBUG Searching for a compatible version of pluggy (>=1.0.0)
DEBUG Selecting: pluggy==1.5.0 (pluggy-1.5.0-py3-none-any.whl)
DEBUG Searching for a compatible version of trove-classifiers ()
DEBUG Selecting: trove-classifiers==2024.5.22 (trove_classifiers-2024.5.22-py3-none-any.whl)
DEBUG Tried 5 versions: hatchling 1, packaging 1, pathspec 1, pluggy 1, trove-classifiers 1
DEBUG Installing in hatchling==1.24.2, packaging==24.1, pathspec==0.12.1, pluggy==1.5.0, trove-classifiers==2024.5.22 in /Users/Will/Library/Caches/uv/environments-v0/.tmp5i67tw
DEBUG Requirement already cached: hatchling==1.24.2
DEBUG Requirement already cached: packaging==24.1
DEBUG Requirement already cached: pathspec==0.12.1
DEBUG Requirement already cached: pluggy==1.5.0
DEBUG Requirement already cached: trove-classifiers==2024.5.22
DEBUG Installing build requirements: hatchling==1.24.2, packaging==24.1, pathspec==0.12.1, pluggy==1.5.0, trove-classifiers==2024.5.22
DEBUG Calling hatchling.build.get_requires_for_build_editable()
DEBUG Downloading source distribution: numpy==1.24.4
DEBUG Installing extra requirements for build backend
DEBUG Solving with installed Python version: 3.12.3
DEBUG Adding direct dependency: hatchling

DEBUG Adding direct dependency: editables>=0.3, <1.dev0
DEBUG Searching for a compatible version of hatchling ()
DEBUG Selecting: hatchling==1.24.2 (hatchling-1.24.2-py3-none-any.whl)
DEBUG Adding transitive dependency for hatchling==1.24.2: packaging>=23.2
DEBUG Adding transitive dependency for hatchling==1.24.2: pathspec>=0.10.1
DEBUG Adding transitive dependency for hatchling==1.24.2: pluggy>=1.0.0
DEBUG Adding transitive dependency for hatchling==1.24.2: trove-classifiers

DEBUG Found fresh response for: https://pypi.org/simple/editables/
DEBUG Searching for a compatible version of editables (>=0.3, <1.dev0)
DEBUG Selecting: editables==0.5 (editables-0.5-py3-none-any.whl)
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/6b/be/0f2f4a5e8adc114a02b63d92bf8edbfa24db6fc602fca83c885af2479e0e/editables-0.5-py3-none-any.whl.metadata
DEBUG Searching for a compatible version of packaging (>=23.2)
DEBUG Selecting: packaging==24.1 (packaging-24.1-py3-none-any.whl)
DEBUG Searching for a compatible version of pathspec (>=0.10.1)
DEBUG Selecting: pathspec==0.12.1 (pathspec-0.12.1-py3-none-any.whl)
DEBUG Searching for a compatible version of pluggy (>=1.0.0)
DEBUG Selecting: pluggy==1.5.0 (pluggy-1.5.0-py3-none-any.whl)
DEBUG Searching for a compatible version of trove-classifiers (*)
DEBUG Selecting: trove-classifiers==2024.5.22 (trove_classifiers-2024.5.22-py3-none-any.whl)
DEBUG Tried 6 versions: editables 1, hatchling 1, packaging 1, pathspec 1, pluggy 1, trove-classifiers 1
DEBUG Installing in editables==0.5, hatchling==1.24.2, packaging==24.1, pathspec==0.12.1, pluggy==1.5.0, trove-classifiers==2024.5.22 in /Users/Will/Library/Caches/uv/environments-v0/.tmp5i67tw
DEBUG Requirement already cached: editables==0.5
DEBUG Requirement already installed: hatchling==1.24.2
DEBUG Requirement already installed: packaging==24.1
DEBUG Requirement already installed: pathspec==0.12.1
DEBUG Requirement already installed: pluggy==1.5.0
DEBUG Requirement already installed: trove-classifiers==2024.5.22
DEBUG Installing build requirement: editables==0.5
DEBUG Calling hatchling.build.build_editable("/Users/Will/Library/Caches/uv/built-wheels-v3/editable/95e5222d70dab9b6/3kKZZwh73mjVK36PUKD7A/.tmpCMoTtr", {}, None)
DEBUG Finished building: uv-mre @ file:///Users/Will/Projects/uv-mre/uv-mre
DEBUG Building: numpy==1.24.4
INFO Ignoring empty directory
DEBUG Solving with installed Python version: 3.12.3
DEBUG Adding direct dependency: setuptools==59.2.0
DEBUG Adding direct dependency: wheel==0.37.0
DEBUG Adding direct dependency: cython>=0.29.30, <3.0
DEBUG No cache entry for: https://pypi.org/simple/setuptools/
DEBUG No cache entry for: https://pypi.org/simple/wheel/
DEBUG No cache entry for: https://pypi.org/simple/cython/
DEBUG No cache entry for: https://files.pythonhosted.org/packages/04/80/cad93b40262f5d09f6de82adbee452fd43cdff60830b56a74c5930f7e277/wheel-0.37.0-py2.py3-none-any.whl.metadata
DEBUG Searching for a compatible version of setuptools (==59.2.0)
DEBUG Selecting: setuptools==59.2.0 (setuptools-59.2.0-py3-none-any.whl)
DEBUG No cache entry for: https://files.pythonhosted.org/packages/18/ad/ec41343a49a0371ea40daf37b1ba2c11333cdd121cb378161635d14b9750/setuptools-59.2.0-py3-none-any.whl.metadata
DEBUG Searching for a compatible version of wheel (==0.37.0)
DEBUG Selecting: wheel==0.37.0 (wheel-0.37.0-py2.py3-none-any.whl)
DEBUG Searching for a compatible version of cython (>=0.29.30, <3.0)
DEBUG Selecting: cython==0.29.37 (Cython-0.29.37-py2.py3-none-any.whl)
DEBUG No cache entry for: https://files.pythonhosted.org/packages/7e/26/9d8de10005fedb1eceabe713348d43bae1dbab1786042ca0751a2e2b0f8c/Cython-0.29.37-py2.py3-none-any.whl.metadata
DEBUG Tried 3 versions: cython 1, setuptools 1, wheel 1
DEBUG Installing in cython==0.29.37, setuptools==59.2.0, wheel==0.37.0 in /Users/Will/Library/Caches/uv/environments-v0/.tmpfNaFY5
DEBUG Identified uncached requirement: cython==0.29.37
DEBUG Identified uncached requirement: setuptools==59.2.0
DEBUG Identified uncached requirement: wheel==0.37.0
DEBUG Downloading and building requirements for build: cython==0.29.37, setuptools==59.2.0, wheel==0.37.0
DEBUG No cache entry for: https://files.pythonhosted.org/packages/7e/26/9d8de10005fedb1eceabe713348d43bae1dbab1786042ca0751a2e2b0f8c/Cython-0.29.37-py2.py3-none-any.whl
DEBUG No cache entry for: https://files.pythonhosted.org/packages/18/ad/ec41343a49a0371ea40daf37b1ba2c11333cdd121cb378161635d14b9750/setuptools-59.2.0-py3-none-any.whl
DEBUG No cache entry for: https://files.pythonhosted.org/packages/04/80/cad93b40262f5d09f6de82adbee452fd43cdff60830b56a74c5930f7e277/wheel-0.37.0-py2.py3-none-any.whl
DEBUG Installing build requirements: wheel==0.37.0, setuptools==59.2.0, cython==0.29.37
DEBUG Calling setuptools.build_meta:__legacy__.get_requires_for_build_wheel()
error: Failed to download distributions
Caused by: Failed to fetch wheel: numpy==1.24.4
Caused by: Failed to build: numpy==1.24.4
Caused by: Build backend failed to determine extra requires with build_wheel() with exit status: 1
--- stdout:

--- stderr:
Traceback (most recent call last):
File "", line 8, in
File "/Users/Will/Library/Caches/uv/environments-v0/.tmpfNaFY5/lib/python3.12/site-packages/setuptools/init.py", line 10, in
import distutils.core
ModuleNotFoundError: No module named 'distutils'

uv.lock > version = 1 requires-python = ">=3.8"

[[distribution]]
name = "numpy"
version = "1.24.4"
source = "registry+https://pypi.org/simple"
sdist = { url = "https://files.pythonhosted.org/packages/a4/9b/027bec52c633f6556dba6b722d9a0befb40498b9ceddd29cbe67a45a127c/numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463", size = 10911229 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/6b/80/6cdfb3e275d95155a34659163b83c09e3a3ff9f1456880bec6cc63d71083/numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64", size = 19789140 },
{ url = "https://files.pythonhosted.org/packages/64/5f/3f01d753e2175cfade1013eea08db99ba1ee4bdb147ebcf3623b75d12aa7/numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1", size = 13854297 },
{ url = "https://files.pythonhosted.org/packages/5a/b3/2f9c21d799fa07053ffa151faccdceeb69beec5a010576b8991f614021f7/numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4", size = 13995611 },
{ url = "https://files.pythonhosted.org/packages/10/be/ae5bf4737cb79ba437879915791f6f26d92583c738d7d960ad94e5c36adf/numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6", size = 17282357 },
{ url = "https://files.pythonhosted.org/packages/c0/64/908c1087be6285f40e4b3e79454552a701664a079321cff519d8c7051d06/numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc", size = 12429222 },
{ url = "https://files.pythonhosted.org/packages/22/55/3d5a7c1142e0d9329ad27cece17933b0e2ab4e54ddc5c1861fbfeb3f7693/numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e", size = 14841514 },
{ url = "https://files.pythonhosted.org/packages/a9/cc/5ed2280a27e5dab12994c884f1f4d8c3bd4d885d02ae9e52a9d213a6a5e2/numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810", size = 19775508 },
{ url = "https://files.pythonhosted.org/packages/c0/bc/77635c657a3668cf652806210b8662e1aff84b818a55ba88257abf6637a8/numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254", size = 13840033 },
{ url = "https://files.pythonhosted.org/packages/a7/4c/96cdaa34f54c05e97c1c50f39f98d608f96f0677a6589e64e53104e22904/numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7", size = 13991951 },
{ url = "https://files.pythonhosted.org/packages/22/97/dfb1a31bb46686f09e68ea6ac5c63fdee0d22d7b23b8f3f7ea07712869ef/numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5", size = 17278923 },
{ url = "https://files.pythonhosted.org/packages/35/e2/76a11e54139654a324d107da1d98f99e7aa2a7ef97cfd7c631fba7dbde71/numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d", size = 12422446 },
{ url = "https://files.pythonhosted.org/packages/d8/ec/ebef2f7d7c28503f958f0f8b992e7ce606fb74f9e891199329d5f5f87404/numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694", size = 14834466 },
{ url = "https://files.pythonhosted.org/packages/11/10/943cfb579f1a02909ff96464c69893b1d25be3731b5d3652c2e0cf1281ea/numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61", size = 19780722 },
{ url = "https://files.pythonhosted.org/packages/a7/ae/f53b7b265fdc701e663fbb322a8e9d4b14d9cb7b2385f45ddfabfc4327e4/numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f", size = 13843102 },
{ url = "https://files.pythonhosted.org/packages/25/6f/2586a50ad72e8dbb1d8381f837008a0321a3516dfd7cb57fc8cf7e4bb06b/numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e", size = 14039616 },
{ url = "https://files.pythonhosted.org/packages/98/5d/5738903efe0ecb73e51eb44feafba32bdba2081263d40c5043568ff60faf/numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc", size = 17316263 },
{ url = "https://files.pythonhosted.org/packages/d1/57/8d328f0b91c733aa9aa7ee540dbc49b58796c862b4fbcb1146c701e888da/numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2", size = 12455660 },
{ url = "https://files.pythonhosted.org/packages/69/65/0d47953afa0ad569d12de5f65d964321c208492064c38fe3b0b9744f8d44/numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706", size = 14868112 },
{ url = "https://files.pythonhosted.org/packages/9a/cd/d5b0402b801c8a8b56b04c1e85c6165efab298d2f0ab741c2406516ede3a/numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400", size = 19816549 },
{ url = "https://files.pythonhosted.org/packages/14/27/638aaa446f39113a3ed38b37a66243e21b38110d021bfcb940c383e120f2/numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f", size = 13879950 },
{ url = "https://files.pythonhosted.org/packages/8f/27/91894916e50627476cff1a4e4363ab6179d01077d71b9afed41d9e1f18bf/numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9", size = 14030228 },
{ url = "https://files.pythonhosted.org/packages/7a/7c/d7b2a0417af6428440c0ad7cb9799073e507b1a465f827d058b826236964/numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d", size = 17311170 },
{ url = "https://files.pythonhosted.org/packages/18/9d/e02ace5d7dfccee796c37b995c63322674daf88ae2f4a4724c5dd0afcc91/numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835", size = 12454918 },
{ url = "https://files.pythonhosted.org/packages/63/38/6cc19d6b8bfa1d1a459daf2b3fe325453153ca7019976274b6f33d8b5663/numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8", size = 14867441 },
{ url = "https://files.pythonhosted.org/packages/a4/fd/8dff40e25e937c94257455c237b9b6bf5a30d42dd1cc11555533be099492/numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef", size = 19156590 },
{ url = "https://files.pythonhosted.org/packages/42/e7/4bf953c6e05df90c6d351af69966384fed8e988d0e8c54dad7103b59f3ba/numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a", size = 16705744 },
{ url = "https://files.pythonhosted.org/packages/fc/dd/9106005eb477d022b60b3817ed5937a43dad8fd1f20b0610ea8a32fcb407/numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2", size = 14734290 }
]

[[distribution]]
name = "uv-mre"
version = "0.0.1"
source = "editable+."
sdist = { path = "." }

[[distribution.dependencies]]
name = "numpy"
version = "1.24.4"
source = "registry+https://pypi.org/simple"

Changing the requires-python from >=3.8 to >=3.9 in the pyproject.toml that hatch generated fixes the problem, possibly because the newer 3.12-compatible numpy==2.0 doesn't support 3.8 and the older numpy==1.24.4 doesn't support 3.12.

@zanieb zanieb self-assigned this Jun 18, 2024
@zanieb
Copy link
Member

zanieb commented Jun 18, 2024

Thanks for the report! Will investigate.

@zanieb zanieb added bug Something isn't working preview Experimental behavior labels Jun 18, 2024
@zanieb
Copy link
Member

zanieb commented Jun 18, 2024

I think this is actually working as intended. We're solving for the a version of numpy that's compatible with the project which is defined as >=3.8 in your pyproject.toml. If we don't solve with that constraint (e.g. just solve for the current version of 3.12), we won't create a universal lock file for the project.

@zanieb zanieb added question Asking for clarification or support and removed bug Something isn't working labels Jun 18, 2024
@WillDuke
Copy link
Author

Ah, I see -- I mistook the older wheels in the log of the universal resolution to mean it was resolving for an older version. Thank you for the quick explainer!
Would it be possible to provide a warning if the resolver sees that a package you request to add has dropped support for the lower end of your project's Python version range?

@zanieb
Copy link
Member

zanieb commented Jun 18, 2024

It seems possible but it might be noisy since often this is "normal". We could definitely add some logs though? @BurntSushi would it be sensible to have something at https://github.com/astral-sh/uv/pull/4273/files#diff-628347083e870ac5a60372227e35df821298fa35b830ae22517ad2ea7ad1c459R105 or is there another place?

@BurntSushi
Copy link
Member

It seems possible but it might be noisy since often this is "normal". We could definitely add some logs though? @BurntSushi would it be sensible to have something at https://github.com/astral-sh/uv/pull/4273/files#diff-628347083e870ac5a60372227e35df821298fa35b830ae22517ad2ea7ad1c459R105 or is there another place?

Possibly... But I think it would probably be a trace! log since I'd expect it to be very noisy. But it seems fine to try it out. I'll put up a PR.

@zanieb
Copy link
Member

zanieb commented Jun 18, 2024

A trace log makes sense to me if it's not too noisy.

BurntSushi added a commit that referenced this issue Jun 18, 2024
Specifically, these are emitted when requirements fail to satisfy
`Requires-Python` or the markers associated with the current fork in the
resolver.

Closes #4373
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
preview Experimental behavior question Asking for clarification or support
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants