正确地组织python项目的结构

统一的项目结构

写了不少python项目后, 越来越认识到python项目结构重要性. 不管项目是否要开源, 是否要提交pypi, 项目结构的一致性带来的好处还有很多: 多人合作开发大家都有个基本的guideline, 别人日后维护也方便, 也容易形成项目开发的best practice.

所以花了写时间, 仔细研究了github上python的 top 10 项目的结构, 项目结构还真不太一样. 比较合我口味的是sandman这个项目. 我做了少许的修改, 主要是将tests package从sandman package下移到顶层目录.

|- LICENSE  
|- README.md   
|- TODO.md   
|- docs  
|   |-- index.md  
|   |-- installation.md  
|   |-- quickstart.md  
|- sandman  
|   |-- __init__.py  
|   |-- exception.py  
|   |-- model.py  
|   |-- sandman.py  
|- tests  
|   |-- __init__.py  
|   |-- test_sandman.py  
|- setup.py  
|- tox.ini  
|- .gitignore  
|- requirements.txt  
|- requirements_dev.txt ,比requirements.txt多的是单元测试库 

Top 10项目的研究发现:

  1. readme.md和setup.py和requirements.txt放在根目录下
  2. 一个项目至少有3个子目录, docs目录, root package 和tests package
  3. 的python代码要放在一个package中, 而不是一般的src目录中.
  4. tox 测试工具大家都在用.
  5. 用pytest和nose单元测试工具比较多, 尤其是pytest

脚手架工具:

下载并安装cookiecutter命令行工具,
网站: 下载
pip install cookiecutter

cookiecutter更详细的教材

参考:

jeffknupp的雄文

posted @   harrychinese  阅读(13807)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示