徐高翔的个人网站

Python工程目录结构

2017-10-21

软硬件环境

  • windows 10 64bit
  • pycharm
  • miniconda with python 3.7.1

前言

作为一名编码人员,基本上都会遇到需要去接手一些过往的工程项目,面对一些组织结构混乱,代码编写我行我素的项目,是不是很冲动想骂娘?虽然人人都在提倡提高项目可读性、可维护性,但在实际开发中,又有多少人能够做到呢?

良好的项目组织结构是一个很好的开端,它能够让人一眼就能看懂目录结构,知道哪里是源码?哪里是配置文件?哪里是文档?从而能够非常快速的了解这个项目。在多人协作开发中,协作者很快就能够知道新增的文件跟代码应该放在什么目录,多次迭代更新后,项目结构也不会混乱。

流行的Python工程目录

这里以名为YOLOv3XmlGenerator的项目为例,大致的文件目录如下图所示

py_structure_01

其中

  • LICENSE 协议文件, 可以参考这篇文章 https://www.jianshu.com/p/a57c13631d5e,讲的很详细了
  • README.md 项目介绍,一般包括使用的环境,安装的方法,软件的基本原理、测试数据及常见问题等,越详细越好
  • requirements.txt 记录依赖的软件包及对应的版本号,方便读者明确项目使用了哪些Python包,可以使用命令安装所有的依赖包pip install -r requirements.txt,另外,可以使用pipreqs这个工具来生成requirements.txt
  • setup.py 管理代码的打包、安装、部署问题, 可以参考之前的文章 https://blog.xugaoxiang.com/python/python-setup.html
  • ChangeLog.txt 记录版本发布的release note
  • .gitignore 如果使用的是git代码管理工具,表明上传时忽略的文件,如果您使用的是svn,请忽略
  • docs 文档目录,项目配置文件通常也放在这里,关于项目配置文件,可以看看这篇文章,讲的比较全 https://martin-thoma.com/configuration-files-in-python/
  • extras 有时候会使用到一些C/C++库,一般放在这个文件夹里
  • scripts 存放脚本文件,比如代码仓库不适合存放很大的二进制文件,这时候可以写个脚本去拉取
  • yolov3xmlgenerator 项目源码文件夹,入口文件建议命名为main.py,再配上__init__.py文件,另外,单元测试的代码也放在这块

参考资料

本文链接 https://xugaoxiang.com/2017/10/21/Python工程目录结构/

推荐文章(由hexo文章推荐插件驱动)

Tags: python
使用支付宝打赏
使用微信打赏

请博主喝咖啡!