如何让Poetry打包未纳入Git版本控制的.py文件?
解决Poetry打包未受Git控制的生成.py文件问题
默认情况下,Poetry会参考Git的追踪规则,被.gitignore排除且未被Git添加追踪的文件不会被纳入打包范围。针对你这种自动生成、无需Git版本控制但需要打包的场景,有两种直接有效的解决方式:
方法一:在pyproject.toml中指定include列表
直接在pyproject.toml的[tool.poetry]区块下添加include字段,明确列出需要打包的生成文件路径,Poetry会忽略Git规则强制包含这些文件:
[tool.poetry] name = "your-package-name" version = "0.1.0" # 其他原有配置... include = [ "src/your_package/generated_file1.py", "src/your_package/generated_file2.py", # 也可以用通配符匹配同类型生成文件 "src/your_package/generated_*.py" ]
方法二:通过packages配置细化包含规则
如果生成文件属于某个子包,也可以在[tool.poetry.packages]中单独指定包含规则,适合需要按包结构管理的场景:
[tool.poetry.packages] include = [ # 原有包的包含规则 { include = "your_package", from = "src" }, # 添加生成文件的包含规则 { include = "your_package/generated_*.py", from = "src" } ]
额外注意
- 确保生成脚本在
poetry build命令执行前已经运行完毕,保证目标文件已存在; - 不要为了打包而将生成文件移出
.gitignore,避免不必要的版本追踪混乱。
内容的提问来源于stack exchange,提问作者Sean Suchter
相关产品推荐
相关产品推荐

