Python打包分发的若干问题(标题字数不够)

1 公司内部(不公开到pypi)如何分发?(利用setup.py还是pip)
2 隔离的环境如何分发?(如利用virtualenv隔离一个env,需要与人分享使用)
3 针对1,2, 如果含有二进制的包,怎么办? 怎么以二进制形式分发(我了解了有egg,wheel形式)

Python打包分发的工具似乎很多,工具有setuptools,pip,distutils,格式有源码,egg,wheel, 另外还是Anaconda这种(另外一个世界)

成熟的整个流程怎么走?(我真是查资料都眼花缭乱了)
我自己初步定义的整个流程可能包括:
1 新人入职,快速得到公司的Python开发环境(可能是一个virtualenv隔离环境)
2 某个组开发的包,在公司内部共享
3 其他(我没有想到)

阅读 3k
4 个回答

可以内部自建pip源

以前的流程是这样的,对于像python这样的弱语言,一个看似不关联的改动可能导致连锁的问题,最终导致系统跑不起来,因此,每次代码的改动和提交都要有充足的单元测试用例保证,跑完之后,做CI,跟其他的模块集成,没问题的话,再发布,发布的方式个人是比较喜欢setuptools,简单,方便,但最近都是推崇wheel格式,你们也可以试试。

如果是公司内部开发,没什么特别强烈的需求,个人倾向不要上virtualenv吧,很容易引起混乱,除非你们之间的接口是服务形式的或者是需要对外发布。

如果是目前公司内部已经在生产环境上使用了多个版本的python并且无法控制,建议你们交付的时候,也别交付python的数据打包了,直接交付docker的镜像吧,能保证在开发团队和测试团队之间的版本一致性,否则,你会发现代码多了,总会有同事漏掉点什么提交的。

直接源码库的形式呗.

我觉得docker形式的微服务是王道

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题