之前看过一些别人写的python项目目录结构,自己其实也一直尝试把python项目结构做好,规范的项目结构,能为代码带来很多方便。
import
规范的项目结构是使用标准import的前提,我之前的一篇博客,提到过这点,对于三种引用方式,implicit relative import,explicit relative import,absolute import
。
实际上只有第三种,才是官方推荐的,第一种是官方强烈不推荐的,python3中已经不可以使用了,我们的from future import absolute_import
也就是为了禁用这种方式。参见我之前的一篇博客:详解python import
就像我说的那样,你要把主控main.py
放到最外层,将其它模块都构造成完整的包。
就是你test目录下的单测,也要在主控的目录下负责调用才行。我想说的是如果你的代码中出现了其它两种方式,比如这种写法:
1 | import sys |
你要想想,是不是,你一开始设计的就有问题。
我现在的python目录结构大概是这样,平时用的python框架主要是flask和tornado,
实际上flask的项目偏业务重些,所以代码量也非常多,但是一般而言,flask的项目都比较规范,
因为一些文档已经在告诉你如何构建项目结构,如何使用它的一系列插件。
到是tornado的项目,因为其本身就用来写些接口和微服务,更偏基础服务,所以很多开发者很少注意其项目结构。
我比较中意的python项目结构,大概是这样的(这算是我的标配了):
1 | README.md |
注意不要log文件目录放在项目文件目录里。