uv/crates
Andrew Gallant 8122d809a4 virtualenv: determine 'site-packages' based on implementation name
I'm not at all sure whether this is a correct fix or not, but it does
seem to make `pypy` work in at least some cases with `uv`. Previously,
I couldn't get it to work at all. Namely the virtualenv was created
with a `lib/python3.10/site-packages`, but whenever I did a `uv
pip install` in that virtualenv, it was looking for a non-existent
`lib/pypy3.10/site-packages` directory.

With this PR, the workflow reported as not working in #1488 now works
for me:

```
$ pypy3 --version
Python 3.10.13 (fc59e61cfbff, Jan 17 2024, 05:35:45)
[PyPy 7.3.15 with GCC 13.2.1 20230801]

$ uv venv --python $(which pypy3) --seed
Using Python 3.10.13 interpreter at: /usr/bin/pypy3
Creating virtualenv at: .venv
 + pip==24.0
 + setuptools==69.1.1
 + wheel==0.42.0
Activate with: source .venv/bin/activate

$ uv pip install 'alembic==1.0.11'
Resolved 9 packages in 8ms
Installed 9 packages in 14ms
 + alembic==1.0.11
 + greenlet==3.0.3
 + mako==1.3.2
 + markupsafe==2.1.5
 + python-dateutil==2.8.2
 + python-editor==1.0.4
 + six==1.16.0
 + sqlalchemy==2.0.27
 + typing-extensions==4.10.0
```

Where as previously (current `main`), I was hitting this error:

```
$ uv venv --python $(which pypy3) --seed
Using Python 3.10.13 interpreter at: /usr/bin/pypy3
Creating virtualenv at: .venv
 + pip==24.0
 + setuptools==69.1.1
 + wheel==0.42.0
Activate with: source .venv/bin/activate

$ uv pip install 'alembic==1.0.11'
error: Failed to list installed packages
  Caused by: failed to read directory `/home/andrew/astral/issues/uv/i1488/.venv/lib/pypy3.10/site-packages`
  Caused by: No such file or directory (os error 2)
```

Notice though that neither outcome above matches the error reported in #1488,
so this is likely not a complete fix. There are perhaps other lurking
issues.

Ref #1488
2024-02-29 15:57:57 -05:00
..
bench Rename to uv (#1302) 2024-02-15 11:19:46 -06:00
cache-key Clippy pedantic (#1963) 2024-02-25 14:04:05 -05:00
distribution-filename Clippy pedantic (#1963) 2024-02-25 14:04:05 -05:00
distribution-types tweak the order of index priority (#2083) 2024-02-29 11:57:07 -05:00
gourgeist virtualenv: determine 'site-packages' based on implementation name 2024-02-29 15:57:57 -05:00
install-wheel-rs Avoid assuming RECORD file is in platlib (#2091) 2024-02-29 17:21:49 +00:00
once-map Remove unused deps (#1273) 2024-02-11 18:53:58 +00:00
pep440-rs pep440: remove redundant without_local() (#2019) 2024-02-27 11:00:58 -05:00
pep508-rs feat: expose uv_normalize types (#2082) 2024-02-29 15:06:56 +00:00
platform-host Clippy pedantic (#1963) 2024-02-25 14:04:05 -05:00
platform-tags Clippy pedantic (#1963) 2024-02-25 14:04:05 -05:00
pypi-types Bump serde_json from 1.0.113 to 1.0.114 (#1996) 2024-02-26 23:12:54 +00:00
requirements-txt Use Simplified instead of Normalized for path prefix stripping (#2071) 2024-02-29 01:44:50 +00:00
uv Bump version to v0.1.13 (#2090) 2024-02-29 17:39:28 +00:00
uv-auth Clippy pedantic (#1963) 2024-02-25 14:04:05 -05:00
uv-build Add option pass environment variables for SDist building (#2039) 2024-02-29 10:55:10 +00:00
uv-cache Support environment variables in index URLs in requirements files (#2036) 2024-02-28 19:36:20 +00:00
uv-client tweak the order of index priority (#2083) 2024-02-29 11:57:07 -05:00
uv-dev Add option pass environment variables for SDist building (#2039) 2024-02-29 10:55:10 +00:00
uv-dispatch Add option pass environment variables for SDist building (#2039) 2024-02-29 10:55:10 +00:00
uv-distribution Support environment variables in index URLs in requirements files (#2036) 2024-02-28 19:36:20 +00:00
uv-extract Add fs_err to disallowed_method in clippy.toml (#1950) 2024-02-26 14:15:07 +00:00
uv-fs Avoid canonicalizing user-provided interpreters (#2072) 2024-02-28 21:32:52 -05:00
uv-git Use Simplified instead of Normalized for path prefix stripping (#2071) 2024-02-29 01:44:50 +00:00
uv-installer Use Simplified instead of Normalized for path prefix stripping (#2071) 2024-02-29 01:44:50 +00:00
uv-interpreter virtualenv: determine 'site-packages' based on implementation name 2024-02-29 15:57:57 -05:00
uv-normalize Clippy pedantic (#1963) 2024-02-25 14:04:05 -05:00
uv-resolver Allow pre-releases for requirements in constraints files (#2069) 2024-02-29 01:16:23 +00:00
uv-traits Rename Virtualenv and PythonPlatform structs (#2034) 2024-02-28 15:04:55 +00:00
uv-trampoline Win Trampoline: Use Python executable path encoded in binary (#1803) 2024-02-22 16:10:02 +01:00
uv-warnings Rename to uv (#1302) 2024-02-15 11:19:46 -06:00
README.md Rename to uv (#1302) 2024-02-15 11:19:46 -06:00

Crates

bench

Functionality for benchmarking uv.

cache-key

Generic functionality for caching paths, URLs, and other resources across platforms.

distribution-filename

Parse built distribution (wheel) and source distribution (sdist) filenames to extract structured metadata.

distribution-types

Abstractions for representing built distributions (wheels) and source distributions (sdists), and the sources from which they can be downloaded.

gourgeist

A venv replacement to create virtual environments in Rust.

install-wheel-rs

Install built distributions (wheels) into a virtual environment.]

once-map

A waitmap-like concurrent hash map for executing tasks exactly once.

pep440-rs

Utilities for interacting with Python version numbers and specifiers.

pep508-rs

Utilities for interacting with PEP 508 dependency specifiers.

platform-host

Functionality for detecting the current platform (operating system, architecture, etc.).

platform-tags

Functionality for parsing and inferring Python platform tags as per PEP 425.

uv

Command-line interface for the uv package manager.

uv-build

A PEP 517-compatible build frontend for uv.

uv-cache

Functionality for caching Python packages and associated metadata.

uv-client

Client for interacting with PyPI-compatible HTTP APIs.

uv-dev

Development utilities for uv.

uv-dispatch

A centralized struct for resolving and building source distributions in isolated environments. Implements the traits defined in uv-traits.

uv-distribution

Client for interacting with built distributions (wheels) and source distributions (sdists). Capable of fetching metadata, distribution contents, etc.

uv-extract

Utilities for extracting files from archives.

uv-fs

Utilities for interacting with the filesystem.

uv-git

Functionality for interacting with Git repositories.

uv-installer

Functionality for installing Python packages into a virtual environment.

uv-interpreter

Functionality for detecting and leveraging the current Python interpreter.

uv-normalize

Normalize package and extra names as per Python specifications.

uv-package

Types and functionality for working with Python packages, e.g., parsing wheel files.

uv-resolver

Functionality for resolving Python packages and their dependencies.

uv-traits

Shared traits for uv, to avoid circular dependencies.

pypi-types

General-purpose type definitions for types used in PyPI-compatible APIs.

uv-warnings

User-facing warnings for uv.

requirements-txt

Functionality for parsing requirements.txt files.