何时在Python分布中使用多个顶级包最合适?

2024-10-02 18:19:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我没有看到多个顶级包Python发行版的例子。这样做的好处/缺点是什么

  1. 多分发(每个目录都有自己的设置.py、要求等独立安装)
  2. 单个顶层包,分为模块/子包。在

当您有稍微相关的代码时,多个顶级包分发似乎避免了多次管理元数据和其他打包基础设施。总体而言,这可能不那么麻烦,而且对于新的贡献者来说更容易避免多发行版设置(这可能需要他们了解更多关于setuptools等的知识)。它是以丢失粒度依赖性为代价的。然而,使用模块和子包进行分离的单个顶层包也有同样的缺点。也许我看到了一个根本不存在的区别?在

我有一些内部代码,感觉不像一个包——例如,一个大型工具,一个小型无关工具的集合,以及一些共享的数据模型和粘合代码。其他工具和库很可能也会出现,我希望人们也希望访问为特殊脚本安装的数据模型包/模块。在

为了争论:

  • 数据模型和粘合代码主要是关于从配置、数据库或某些源组合访问数据。在
  • bigtool依赖于所有这些信息并编译/部署这些信息。在
  • utils可能包含一些较小的工具,用于从数据模型中提取常用的摘要统计信息,或者只对相对不相关的任务使用一些通用代码(检查生产服务器状态等)。在
  • 特别脚本通常是使用数据模型编写的。也许以后它们会变得更大,并存储在utils或它们自己的位置。在

一个包含bigtoolutilsdatamodel顶级包的单个发行版在这里有意义吗?或者大多数人会在顶层有一个空的包(一些整体的项目名),而只是通过子包提供分离?如果出于某种原因(例如分离依赖关系)需要独立地构建/安装它们,那么以后可以迁移到多发行版。在


Tags: 模块工具数据代码py目录脚本信息