C++,python,热爱算法和机器学习
全部博文(1214)
分类: Python/Ruby
2014-04-04 17:19:07
打算写这样一个系列,说说我们在360里面,如何使用Python。在360,除非是需要包含在360客户端软件当中的功能,技术人员使用什么语言进行开发,更多的是一种个人,最多是项目团队的决定。因此我们的同事会使用 php写页面,用python的工具,用c/c++写模块,甚至用易语言写界面。
也正是因为这个原因,虽然这个标题写得很大,但其实我也只能写一下我所在的团队如何使用Python。我们目前有Python代码约6万行,程序运行在Linux下,使用 Python2.5 和 Python 2.7 环境。
这6万行Python代码被被分成80余个项目进行组织。每个项目提供一个或一组完整的功能集合,每个项目都有自己的 setup.py 文件用来将项目代码打包成 Python (Distribution),部分项目还有自动文档生成,我们使用的是 和 reST格式的文本。打包好的Python包被发布到我们自己搭建的内网的与 兼容的私有 pypi 服务器上,而文档保存在内网的类似于 的服务器上。
后台团队的代码主要运行我们自己的Linux服务器集群上,开发和部署的成本比较低,因此我们使用比较敏捷的开发流程。流程大体上可以分为下面几个步骤:
熟悉Python的朋友们可能看到这些名词和包都很熟悉,因为我们所使用的都是业界广泛使用的开发、测试和运维的工具。但这些工具很多都适合于开源软件(Open Source Software)而非私有软件(Proprietary Software),例如 distribute 与 pypi.python.org 的结合是天衣无缝的,Sphinx 和 readthedocs 也是很容易结合,但是作为一个私有软件,我们无法将代码和文档放到 pypi 或 readthedocs 上面。为此我们几乎复制了整套的基础架构,包括 pypi 服务,readthedocs 服务等,后续我会介绍我们如何做到这点的。希望这个系列对于其他正在使用Python开发私有软件的同仁能有些帮助。