执行poetry add命令后项目pyproject.toml文件未更新如何解决
Poetry执行add命令不更新pyproject.toml的解决方案
路径校验
- 首先确认执行
poetry add命令的工作目录为项目根目录(即pyproject.toml、poetry.lock文件所在目录),部分旧版Poetry在子目录执行命令时,即使向上查找到项目配置,也存在不更新上层配置文件的bug。
配置修正
正常情况下poetry add默认会自动写入pyproject.toml,未触发更新大概率是全局/项目级配置被修改,执行以下命令查看当前Poetry配置:
poetry config --list
检查配置项add.modify-pyproject的取值,如果为false,执行以下命令调整:
- 全局生效:
poetry config add.modify-pyproject true --global - 仅当前项目生效:
poetry config add.modify-pyproject true --local
权限校验
确认当前执行命令的用户对pyproject.toml文件有读写权限,执行以下命令查看权限:
ls -l pyproject.toml
如果权限不足,执行以下命令修正:
chmod 644 pyproject.toml
同时确认项目所在目录未被设置为只读挂载。
版本升级
低于1.2.0版本的Poetry存在已知的add命令不更新配置文件的bug,先查看当前版本:
poetry --version
版本过低的话执行升级命令:
poetry self update
临时强制更新方案
如果需要临时新增依赖并写入配置,可在add命令后追加--pyproject参数强制更新:
poetry add slack-sdk --pyproject
验证方法
配置调整完成后,执行poetry add requests测试,查看pyproject.toml中[tool.poetry.dependencies]块下是否新增了requests的依赖条目,验证完成后可执行poetry remove requests删除测试依赖。
内容的提问来源于stack exchange,提问作者phil0s0pher
相关产品推荐
相关产品推荐

