一尘不染

Python应用程序的最佳项目结构是什么?

python

想象一下,你想使用Python开发非平凡的最终用户桌面(非Web)应用程序。构造项目文件夹层次结构的最佳方法是什么?

理想的功能是易于维护,IDE友好,适用于源代码控制分支/合并以及易于生成安装软件包。

尤其是:

  1. 你将源放在哪里?
  2. 你将应用程序启动脚本放在哪里?
  3. 你将IDE项目放在哪里?
  4. 你将单元/验收测试放在哪里?
  5. 你将非Python数据(例如配置文件)放在哪里?
  6. 你在哪里将非Python来源(例如C ++)用于pyd / so二进制扩展模块?

阅读 693

收藏
2020-02-19

共1个答案

一尘不染

没什么大不了的。令你快乐的一切都会起作用。没有很多愚蠢的规则,因为Python项目可以很简单。

  • /scripts或/bin那种命令行界面的东西
  • /tests 为你的测试
  • /lib 用于你的C语言库
  • /doc 对于大多数文档
  • /apidoc 用于Epydoc生成的API文档。

顶级目录可以包含自述文件,配置文件和其他内容。

困难的选择是是否使用/src树。Python没有区别/src,/lib/binJavaC具有。

由于/src某些人认为顶层目录没有意义,因此顶层目录可以是应用程序的顶层体系结构。

  • /foo
  • /bar
  • /baz

我建议将所有这些都放在“我的产品名称”目录下。因此,如果你正在编写名为的应用程序quux,则包含所有这些内容的目录将命名为/quux

这样,另一个项目PYTHONPATH可以包括/path/to/quux/foo重用QUUX.foo模块。

就我而言,由于我使用Komodo Edit,因此我的IDE cuft是单个.KPF文件。实际上,我将其放在顶层/quux目录中,并省略了将其添加到SVN中的情况。

2020-02-19