Skip to content

uv lock with transitive poetry path depedencies results in machine-specific path in lockfile #19152

@benniekiss

Description

@benniekiss

Summary

I've run into a problem trying to lock a dependency which itself uses poetry and declares relative path dependencies. The package in question is a custom fork of DeepfilterNet here: https://github.com/benniekiss/DeepFilterNet

The package has a dependency on deepfilterlib via the relative path declared here. I implemented this change to make building DeepfilterNet standalone simpler for my dev setup, but this has resulted in issues with lock file generation.

Because of the path dependency, when the lockfile is generated, the deepfilterlib lock is something like this:

	[[package]]
	name = "deepfilterlib"
	version = "0.5.7"
	source = { directory = "/Users/benniekiss/.cache/uv/git-v0/checkouts/e42607f483442963/ba2260b/pyDF" }

This results in sync failures when trying to install on a different machine.

Is there a way to avoid this conflict without changing the packages dependencies, or is this expected behavior?

Here is a short MRE:

mkdir -p test_lock
cd test_lock

cat <<EOF > pyproject.toml
[project]
name = "test_lock"
version = "1"
requires-python = ">=3.13,<3.14"
dependencies = [
    "deepfilternet",
]
[tool.uv.sources]
deepfilternet = [
    { git = "https://github.com/benniekiss/DeepFilterNet", subdirectory = "DeepFilterNet", branch = "dev" },
]
EOF

echo "LOCKING"
uv lock --no-cache

echo "SYNCING"
uv sync

Platform

macOS 26

Version

0.11.7

Python version

3.13

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions