使用Python库包的最佳实践是什么?
基本上,我们有一个Python库,其中包含我们在许多程序中使用的模块和函数。目前,我们将SVN存储库直接签出到C:\Python27\Lib中,以便该库位于Python路径中。当有人对库进行修改时,每个人都会更新以获得这些修改 我们的一些程序被冻结(使用cx Freeze)并交付,因此我们必须跟踪交付中使用的库版本,但cx Freeze会自动打包代码中导入的模块使用Python库包的最佳实践是什么?,python,windows,python-2.7,Python,Windows,Python 2.7,基本上,我们有一个Python库,其中包含我们在许多程序中使用的模块和函数。目前,我们将SVN存储库直接签出到C:\Python27\Lib中,以便该库位于Python路径中。当有人对库进行修改时,每个人都会更新以获得这些修改 我们的一些程序被冻结(使用cx Freeze)并交付,因此我们必须跟踪交付中使用的库版本,但cx Freeze会自动打包代码中导入的模块 我认为,在冻结任何导入库的程序之前,依靠人们来验证库中没有未提交的本地更改,或者它们是最新的,这不是一个好主意 我们唯一的版本跟踪是
- 我认为,在冻结任何导入库的程序之前,依靠人们来验证库中没有未提交的本地更改,或者它们是最新的,这不是一个好主意
- 我们唯一的版本跟踪是库存储库的提交号,它没有链接到任何地方的程序交付版本,我认为它不应该用作库的交付版本
我一直在寻找针对该特定案例的最佳实践,但我没有找到任何想法?最终,您将不得不相信您的用户会遵循您建立的开发流程。您可以创建工具来简化这一过程,但最终您总会获得一些信任 对许多人有帮助的事情包括:
- 所有冻结/发布的可执行文件构建都是由BuildBot或Jenkins之类的东西在中央计算机上构建的,而不是由单个开发人员构建的。这为您提供了一个中心点,以确保构建是从干净的签出发货的
- 如果有未提交的更改,请提供执行生成和出错的脚本
- 在可能的情况下,将
指向发行版的源代码树并使其正常工作是很有价值的,即使有PYTHONPATH
可以构建发行版。这使得测试更容易。和往常一样,请确保用于构建附带版本的工具检查此问题,如果出现此问题,则会失败setup.py
您可以采用任何一种方法,但我认为您会发现,关键在于选择哪种方法都能实现良好的自动化,而不是在distribution vs subversion checkout的答案中欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。在这里申请。