为了什么:
说明: 设计目录结构和代码编码风格一样属于个人风格问题,但是规范化能更好的控制程序结构,让程序具有更高的可读性,对于如何组织一个较好的目录结构,在Stackoverflow中几乎达成共识.
目录结构:
说明: 假设你的项目名为app,我比较建议的最方便最快捷的目录结构,如下这样就足够
. ├── app │ ├── __init__.py │ ├── main.py │ └── tests │ └── __init__.py ├── bin ├── ChangeLog.txt ├── docs │ └── conf.py ├── LICENSE.txt ├── README ├── requirements.txt └── setup.py
bin | 存放项目中可执行文件 |
app | 存放项目的所有源代码 |
app/tests | 存放运行单元测试代码 |
doc | 存放一些文档 |
setup.py | 安装, 部署, 打包的脚本 |
requirements.txt | 存放软件依赖第三方包,可使用pigar自动检测生成 |
README | 项目说明文件 |
LICENSE.txt | 开源项目协议 |
ChangeLog.txt | 更新修复记录 |
具体细节:
1. README是每个项目必须应该有的文件,目的是为了让读者快速了解这个项目,应该包括软件定位,基本功能,运行方法,使用说明,目录说明,常见问题等,具体可以参考redis的README文件
2. setup.py用来管理代码的打包,安装,部署,业界标准是使用setuptools管理这些事情,主要目的是为了能够快速便捷的在一台新的机器上将环境装好,代码部署好和程序运行起来,新环境缺少依赖包无法启动问题屡见不鲜,setup.py就可以将这些事情自动化起来,提高效率,减少出错率,复杂的东西自动化,能自动化的东西一定要自动化是一个非常好的习惯
3. requirements.txt方便开发者维护软件的包依赖,将开发过程中新增的包添加进这个列表避免setup.py安装依赖时漏掉,如果手动安装的话pip -r requirements.txt即可快速恢复项目运行环境
4. 如上的conf.py并没有放在源代码目录下,而是放在docs下,强烈不推荐大家把配置写死通过全局import conf导入,这样会使得模块依赖了外部配置单元测试变的困难,程序组件可复用太差,所以更好的方式应该在docs下给一个默认配置,通过main.py启动参数指定一个配置路径来读取配置内容
本文出自 “ζ自动化运维开发之路ζ” 博客,请务必保留此出处http://xmdevops.blog.51cto.com/11144840/1856770
代码风格.Python-整体风格.0002.让你Python程序软件目录更规范化?
原文地址:http://xmdevops.blog.51cto.com/11144840/1856770