3 回答
TA贡献1785条经验 获得超4个赞
您可以在要添加的文件列表MANIFEST.in
旁边添加一个文件名setup.py
,允许使用通配符(例如:include *.yaml
或include clana/config.yaml
),然后该选项include_package_data=True
将激活清单文件
TA贡献1818条经验 获得超8个赞
简而言之:添加config.yaml
到MANIFEST.in
,并设置include_package_data
。一个没有另一个是不够的。
基本上它是这样的:
MANIFEST.in
将文件添加到sdist
(源分发)。include_package_data
将这些相同的文件添加到bdist
(构建的发行版),即它扩展了MANIFEST.in
to的效果bdist
。exclude_package_data
防止sdist
将文件添加到 中bdist
,即过滤include_package_data
.package_data
将文件添加到bdist
,即它向您添加构建工件(通常是自定义构建步骤的产品)bdist
,当然对sdist
.
因此,在您的情况下,该文件config.yaml
未安装,因为它未添加到您的bdist
(构建的发行版)中。根据文件的来源,有两种方法可以解决此问题:
要么该文件是构建工件(通常它是在该
./setup.py build
阶段以某种方式创建的),那么您需要将其添加到package_data
;或者该文件是您的源代码的一部分(通常在您的源代码存储库中),那么您需要将其添加到
MANIFEST.in
、 setinclude_package_data
并将其排除在外exclude_package_data
(这似乎是您的情况)。
看:
TA贡献1895条经验 获得超3个赞
根据包含数据文件的文档,如果您的包有文件等数据文件.yaml,您可以像这样包含它们:
setup(
...
package_data={
"": ["*.yaml"],
},
...
)
这将允许包含您的包中具有文件扩展名的任何文件.yaml。
添加回答
举报