uv.lock is uv's own format. It records the resolution for every platform and Python version allowed by requires-python in one file, with per-marker branches, rather than the single-environment pin that a requirements file expresses. That is why it has no -r equivalent and why pip install -r uv.lock cannot work.
To hand the same pins to something that only speaks pip, run uv export --format requirements-txt -o requirements.txt. The export resolves the universal lock down to the current platform and includes hashes by default, so the result is suitable for pip install --require-hashes. Add --no-hashes when a consumer cannot handle them, and --no-dev to drop development dependencies.
The file is meant to be committed and is not intended to be edited by hand; its internal version field is bumped when the format changes, so a lock written by a newer uv can be rejected by an older one with a version error. Pin the uv version in CI alongside the lock to avoid a rewrite showing up as an unrelated diff.