在(和多个操作系统)上创建Python分发(egg)的最佳实践是什么?

Non*_*-da 7 python egg setuptools software-packaging

我们是一家蟒蛇店.我们在内部开发了不同的python包,并将部署到客户的环境(机器)上.

这就是我们的开发和发布周期的发生方式.

一旦开发人员完成对包的"测试",就准备包的分发(egg文件)并将其推送到中央存档位置.当我们想要将我们的软件部署到客户时,将在其环境中下载和安装相同的发行版(egg文件).

假设"测试"发生在多个操作系统上(为了检查跨平台的API的兼容性),准备发行版的最佳实践是什么,并被推送到中央归档位置.

是否最好在归档服务器上安装特定于操作系统的鸡蛋(例如,samplepkg-1.0.0.win32.egg和samplepkg-1.0.0.linux.egg?不确定如何使用setuptools以这种方式准备它们.)或者有一个鸡蛋,因为API在各个平台上保持不变?社区遵循的任何其他做法?

Rol*_*ith 5

在以下情况下,您可以使用单个包:

  1. 该软件包不使用所有目标平台上都不可用的函数/类(参见例如版本2.7.2的Python标准库参考的第36-39章,了解在这种情况下不应使用的内容)
  2. 您没有使用需要为每个平台编译的C/C++编写的扩展.

最好远离所有目标平台上不可用的操作系统特定功能.在这方面,标准库有很好的文档记录.