Python应用程序的最佳项目结构是什么?[已关闭]

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

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

特别:

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

答案 1

没什么大不了的。任何让你快乐的东西都会起作用。没有很多愚蠢的规则,因为Python项目可能很简单。

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

顶级目录可以包含自述文件,配置等。

困难的选择是是否使用树。Python 不像 Java 或 C 那样有区别。/src/src/lib/bin

由于顶级目录被某些人视为毫无意义,因此顶级目录可以是应用程序的顶级体系结构。/src

  • /foo
  • /bar
  • /baz

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

然后,另一个项目可以包括重用该模块。PYTHONPATH/path/to/quux/fooQUUX.foo

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


答案 2

根据Jean-Paul Calderone的Python项目的文件系统结构

Project/
|-- bin/
|   |-- project
|
|-- project/
|   |-- test/
|   |   |-- __init__.py
|   |   |-- test_main.py
|   |   
|   |-- __init__.py
|   |-- main.py
|
|-- setup.py
|-- README