如何配置PDM以适配基于src目录的Python仓库?
问题解决:带src目录的PDM仓库脚本运行报错
错误原因
出现ModuleNotFoundError是因为脚本入口的模块路径配置错误。在src布局下,cli.py属于mymodule包的子模块,而非顶级模块,直接写cli:invoke会导致Python无法定位到该模块。
解决步骤
修改
pyproject.toml的脚本配置
将[project.scripts]下的内容改为完整的包路径:[project.scripts] mymodule = "mymodule.cli:invoke"重新安装开发依赖
执行命令让PDM更新脚本的入口映射:pdm install --dev测试运行
再次执行脚本即可正常输出内容:pdm run mymodule
补充说明
在无src目录的仓库结构中,cli.py直接位于项目根目录,属于Python可直接识别的顶级模块,因此cli:invoke的配置有效。但src布局下,代码被放在src/mymodule目录下,必须通过完整的包名mymodule.cli来引用模块,才能让Python正确找到对应的函数。
内容的提问来源于stack exchange,提问作者lofidevops
相关产品推荐
相关产品推荐

