python sdist中应包含哪些文件?

时间:2018-12-05 20:34:02

标签: python setuptools

我要问的是生成sdist的标准做法。 sdist是否应该有效地包含存储库中的大多数或所有文件?还是sdist仅包含构建档案文件所需的文件集,例如whlegg

Trac project出现了问题。让我给出一些有关我正在考虑的文件的具体示例。我们应该包括吗?:

  • RST格式的开发人员文档(这些文件未包含在我们分发的whl中)
  • .gitignore之类的存储库工件
  • contrib中的Python脚本未包含在egg或whl中,但通常很有用
  • 已编译的翻译目录(mo文件)是构建的构件,未存储在存储库中

2 个答案:

答案 0 :(得分:2)

源代码分发用于安装软件包。 using System; using System.IO; using Microsoft.Extensions.Configuration; namespace GeoAppConfiguration { public class NT { public string URL { get; set; } public string User { get; set; } public string Password { get; set; } } public class CPCreds { public string User { get; set; } public string Password { get; set; } } public class Ubi { public string URL { get; set; } } public class GeoAppConfiguration { public string ConnectionString { get; set; } public CPCreds CPcreds { get; set; } public NT NT { get; set; } public Ubi Ubi { get; set; } public GeoAppConfiguration() { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("app.json"); var config = builder.Build(); ConfigurationBinder.Bind(config, this); } } } 下载sdist,解压缩并运行

pip

因此,sdist必须包含构建和安装软件包所需的所有内容。其他一切-取决于包装商。 sdist可能包含其他文件,例如docs。

答案 1 :(得分:1)

源分发(sdist)是一种分发格式,用于从源文件安装库。

引用Python Packaging User Guide

  

一种分发格式(通常使用python setup.py sdist生成),提供了元数据和使用pip之类的工具进行安装或生成内置分发所需的基本源文件。

如今,我们使用版本控制系统(如Git,Subversion或Mercurial)来存储库的源代码。因此,sdist格式主要包含VCS包含的内容。

与Wheel格式相反,该格式包含“运行”库/应用程序所需的所有内容。例如,Wheel不包含单元测试,文档等。