Skip to content

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

Closed

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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