如何在pyproject.toml中指定命令行脚本?(cutlet项目适配pipx)
配置pyproject.toml支持命令行脚本(无需Poetry)
你完全不用依赖Poetry,直接用PEP 621标准配置或者setuptools的扩展就能搞定命令行脚本的指定,完美适配pipx工具。下面分两种场景给你具体方案:
场景1:用模块入口点(推荐方式)
如果你的命令行逻辑已经封装在某个模块的函数里(比如cutlet/cli.py里的main()函数),可以直接在pyproject.toml的[project.scripts]区块配置——这是PEP 621的标准写法,所有符合规范的打包工具(包括pipx依赖的pip)都能识别:
[project] name = "cutlet" version = "你的项目版本号" # 这里补充其他必要项目信息,比如authors、description等 [project.scripts] cutlet = "cutlet.cli:main"
- 左边的
cutlet是你要在终端调用的命令名称 - 右边的字符串遵循
模块路径:函数名格式,指向你脚本的入口函数
场景2:直接指定已有的独立脚本文件
如果你不想调整代码结构,只想复用已有的独立脚本文件(比如项目里的scripts/cutlet.py),可以用setuptools的扩展配置[tool.setuptools.scripts],对应原来setup.py里的scripts参数:
[project] name = "cutlet" version = "你的项目版本号" [tool.setuptools.scripts] cutlet = "scripts/cutlet.py"
验证配置是否生效
配置完成后,在项目根目录运行以下命令安装:
pipx install .
安装成功后,直接在终端输入cutlet就能调用你的命令行脚本了,pipx会自动把命令加入系统可执行路径。
内容的提问来源于stack exchange,提问作者polm23
相关产品推荐
相关产品推荐

