Given two packages foo and bar, bar depends on foo.
The foo/pyproject.toml:
[project]
name = "foo"
dependencies = []
version = "0.0.1"
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
The bar/pyproject.toml:
[project]
name = "bar"
dependencies = ["foo"]
version = "0.0.1"
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
First, install foo as editable:
Then uv will fail to install bar:
uv pip install -e ./bar
Built file:///home/test/uv/depends_on_dev/bar Built 1 editable in 996ms
× No solution found when resolving dependencies:
╰─▶ Because there are no versions of foo and bar==0.0.1 depends on foo, we can conclude that bar==0.0.1 cannot be used.
And because you require bar==0.0.1, we can conclude that the requirements are unsatisfiable.
Pip can install bar in this case:
pip install -e ./bar
Obtaining file:///home/test/uv/depends_on_dev/bar
Installing build dependencies ... done
Checking if build backend supports build_editable ... done
Getting requirements to build editable ... done
Installing backend dependencies ... done
Preparing editable metadata (pyproject.toml) ... done
Requirement already satisfied: foo in ./.venv/lib/python3.11/site-packages (from bar==0.0.1) (0.0.1)
Building wheels for collected packages: bar
Building editable for bar (pyproject.toml) ... done
Created wheel for bar: filename=bar-0.0.1-0.editable-py3-none-any.whl size=2417 sha256=41194ddee86dcd04067762778ced041e1c5fe2f5480282e39eadf9424629ea9d
Stored in directory: /tmp/pip-ephem-wheel-cache-fs8mgp4c/wheels/23/5a/37/0e1593ffa950e8b00faa7776b41fc4d9c247b80fd8ceacd332
Successfully built bar
Installing collected packages: bar
Successfully installed bar-0.0.1
Given two packages
fooandbar,bardepends onfoo.The
foo/pyproject.toml:The
bar/pyproject.toml:First, install foo as editable:
Then uv will fail to install bar:
uv pip install -e ./bar Built file:///home/test/uv/depends_on_dev/bar Built 1 editable in 996ms × No solution found when resolving dependencies: ╰─▶ Because there are no versions of foo and bar==0.0.1 depends on foo, we can conclude that bar==0.0.1 cannot be used. And because you require bar==0.0.1, we can conclude that the requirements are unsatisfiable.Pip can install bar in this case: