Python项目打包控制台入口点报错:pyproject.toml脚本配置问题
解决Python打包时[project.scripts]格式错误问题
你遇到的project.scripts.my_module_name必须为python-entrypoint-reference格式的错误,不是文件结构的问题,完全是[project.scripts]的配置格式不符合规范导致的。
正确的配置格式要求
[project.scripts]下的每一项必须遵循 脚本名 = "模块完整路径:入口函数名" 的格式,其中:
- 脚本名:你希望在控制台执行的自定义命令名称(比如
my-module-cli) - 模块完整路径:从Python包根目录开始的模块路径(不需要包含
src,打包工具会自动识别src作为源码根目录) - 入口函数名:你要作为执行入口的函数(比如你的
main())
针对你的项目结构的正确配置
你的项目结构是src/my_module_name/cli.py,且cli.py里有main()函数,需先确保my_module_name目录下存在空的__init__.py文件(这样它才会被识别为合法的Python包)。
对应的pyproject.toml配置示例:
[project] name = "my_module_name" version = "0.1.0" # 可补充其他项目配置(如作者、依赖等) [project.scripts] my-module-cli = "my_module_name.cli:main"
逻辑说明
打包工具会从src目录(源码根)定位到my_module_name.cli模块,关联到该模块内的main()函数。构建并安装包后,你就能通过自定义的脚本名(比如my-module-cli)直接在控制台执行main()函数。
内容的提问来源于stack exchange,提问作者SK_33
相关产品推荐
相关产品推荐

