You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过pyproject.toml在Python包中包含.env文件?

为什么"*" = ["*.*"]无法包含.env文件?

核心原因:*.*的glob匹配规则不覆盖无扩展名文件

setuptools采用的glob模式里,*.*的匹配逻辑是选中文件名里至少包含一个点(.)、且点前后都有非空字符的文件。而.env的文件名以点开头,后面没有第二个点分隔的扩展名部分,完全不符合*.*的匹配条件,所以不会被纳入打包范围。

额外问题:错误的包名配置

你尝试的'src' = ['.env']配置无效,是因为package-data的键必须是Python包的名称(比如program、p1),而非文件系统的目录路径(src是根目录,不属于包名范畴)。

正确的配置方式

如果要包含包内所有文件(包括无扩展名的.env),可以修改配置为:

[tool.setuptools.package-data]
"*" = ["*"]

或者更精准地指定目标文件:

[tool.setuptools.package-data]
"p1" = [".env"]

补充说明

setuptools的package-data仅对被识别为Python包的目录生效(即目录下存在__init__.py)。如果你的p1/p2目录没有__init__.py,需要先添加该文件让setuptools将其识别为包,否则这些目录下的文件不会被纳入打包范围(若要打包非包目录的文件,需使用data-files配置,属于另一种场景)。

内容的提问来源于stack exchange,提问作者Devarapalli Vamsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 12:52:46