You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加本地路径依赖后poetry install执行失败的解决办法

问题重现

目录结构

.
├── project1
│   ├── calc.py
│   └── pyproject.toml
└── project2
    ├── foo.py
    └── pyproject.toml

project1的pyproject.toml配置

[tool.poetry]
name = "project1"
version = "0.1.0"
description = ""
authors = ["sib"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.10"
project2 = {path="/home/sib/projects/test_poetry/project2/"}

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

project2的pyproject.toml配置

[tool.poetry]
name = "project1"
version = "0.1.0"
description = ""
authors = ["sib"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.10"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

报错情况

在project1目录下执行poetry install命令时,抛出以下错误:

PoetryException

  Failed to install /home/sib/projects/test_poetry/project2

  at ~/.local/share/pypoetry/venv/lib/python3.10/site-packages/poetry/utils/pip.py:58 in pip_install
       54│ 
       55│     try:
       56│         return environment.run_pip(*args)
       57│     except EnvCommandError as e:
    →  58│         raise PoetryException(f"Failed to install {path.as_posix()}") from e
       59│ 

该问题在Ubuntu和Windows系统上均会出现。


解决方案

1. 修正project2的名称配置错误

project2的pyproject.toml中name字段被错误设置为project1,与依赖声明的project2不匹配,这是核心问题之一。修改为:

[tool.poetry]
name = "project2"
version = "0.1.0"
# 其余配置保持不变

2. 改用相对路径声明本地依赖

绝对路径会导致跨系统兼容性问题,将project1中project2的依赖路径改为相对路径:

[tool.poetry.dependencies]
python = "^3.10"
project2 = {path="../project2"}

3. 清理缓存并重新执行安装

清除poetry的缓存文件,避免旧配置干扰:

poetry cache clear --all pypi
poetry install

4. 更新poetry到最新稳定版

旧版本的poetry可能存在本地依赖安装的bug,执行更新:

poetry self update

内容的提问来源于stack exchange,提问作者Slavik21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:35:16