pyproject.toml脚本导入失败问题求助
问题原因与解决方案
原因分析
你在hatchling的wheel打包配置里犯了一个关键错误:
[tool.hatch.build.targets.wheel] packages = ["sphinxlint"]
这里的packages参数用于指定hatchling需要打包的Python包,但你填写的是第三方包sphinxlint,而非自己的awesome_package。这直接导致构建后的包(包括开发安装环境)完全不包含你的模块,所以执行some-script时自然找不到awesome_package。
换成setuptools后能正常运行,是因为setuptools默认会自动识别当前目录下带__init__.py的Python包,无需手动指定就能正确打包你的模块。
解决方案
修改hatchling的wheel配置,把packages改为你自己的包名:
[tool.hatch.build.targets.wheel] packages = ["awesome_package"]
或者更简单的方式:直接删掉整个[tool.hatch.build.targets.wheel]小节,hatchling会自动发现符合结构的本地包,无需手动指定。
修改后重新执行开发安装:
pip install -e '.[dev]'
之后运行some-script就能正常调用foo()函数了。
内容的提问来源于stack exchange,提问作者Alessandro Staffolani
相关产品推荐
相关产品推荐

