如何在pyproject.toml中为自定义脚本添加Poetry快捷方式?
Poetry 脚本配置报错解决方法
这个错误的原因是:Poetry的[tool.poetry.scripts]默认用来配置Python函数入口(格式为模块名:函数名),不是直接执行Shell命令。你写的ptw --runner 'pytest -s'会被Poetry当成模块路径解析,试图拆分出模块和函数,自然会报「值解包不足」的错误。
要实现和Pipenv类似的命令别名功能,两种简单方案:
方案1:用Shell命令包裹
在pyproject.toml里用bash -c(或sh -c)包裹命令,注意转义引号:
[tool.poetry.scripts] watch = "bash -c 'ptw --runner \"pytest -s\"'"
之后执行poetry run watch就能正常运行。
方案2:直接调用命令
如果不想配置脚本,直接执行以下命令也能达到目的:
poetry run ptw --runner 'pytest -s'
要是需要更复杂的脚本管理,也可以在项目根目录建scripts文件夹,写单独的Shell/Python脚本,再通过[tool.poetry.scripts]指向它们,但简单的命令别名用方案1就足够。
内容的提问来源于stack exchange,提问作者ierdna
相关产品推荐
相关产品推荐

