zoukankan      html  css  js  c++  java
  • 正确地组织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的雄文

  • 相关阅读:
    FreeSql 教程引导
    Day3-JS-JavaScript 函数专题
    Day2-JS-JSON
    Day2-JS-let和const
    Day2-JS-this 关键字
    Day2-JS-JavaScript 验证 API
    Day2-JS-表单
    Day2-JS-严格模式
    Day2-JS-JavaScript 错误
    Day2-JS-正则表达式
  • 原文地址:https://www.cnblogs.com/harrychinese/p/python_project_structure.html
Copyright © 2011-2022 走看看