我要问的是生成sdist
的标准做法。 sdist
是否应该有效地包含存储库中的大多数或所有文件?还是sdist
仅包含构建档案文件所需的文件集,例如whl
或egg
?
在Trac project出现了问题。让我给出一些有关我正在考虑的文件的具体示例。我们应该包括吗?:
whl
中).gitignore
之类的存储库工件contrib
中的Python脚本未包含在egg或whl中,但通常很有用mo
文件)是构建的构件,未存储在存储库中答案 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不包含单元测试,文档等。