Python中的项目结构和文件实现

时间:2011-02-17 19:58:55

标签: python project-structure

我在掌握如何构建Python项目方面遇到了一些麻烦。我已阅读jcalderone: Filesystem structure of a Python project并一直在查看CouchApp的源代码,但我仍感到非常困惑。

我理解 文件应该如何构建,但我不理解为什么。我很乐意,如果有人能够详细介绍这个,或者可以向我解释一下。简单地说明如何设置基本的python项目,以及文件如何相互交互。

我认为这绝对是来自其他语言的人,比如C,C ++,Erlang ......或者以前从未编程的人,可以从中受益。

3 个答案:

答案 0 :(得分:1)

  

将目录命名为与项目相关的内容。当您发布版本时,您应该包含版本号后缀:Twisted-2.5。

不确定为何不清楚这一点。这似乎很明显。这一切都必须在一个目录中。

为什么必须在一个目录中?因为每个人都这么说,这就是原因。

  

创建一个Twisted / bin目录并将可执行文件放在那里。

这是Linux的工作方式。可执行文件位于bin目录中。这样可以很容易地将此​​特定目录放在PATH环境变量中。

  

如果您的项目可以表示为单个Python源文件,那么将其放入目录并将其命名为与项目相关的内容。例如,Twisted / twisted.py。

右。你有/ Twisted,/ Twisted / bin和/Twisted/twisted.py包含你实际运行的代码。你还能把它放在哪里呢?

这没有“为什么”。你还能把它放在哪里呢?

  

如果您需要多个源文件,请改为创建一个包(Twisted / twisted /,使用空的Twisted / twisted / init .py)并将源文件放入其中。例如,Twisted / twisted / internet.py。

这就是Python包的工作方式。它们是包含__init__.py个文件的目录。该教程非常明确。

  

将您的单元测试放在包装的子包装中Twisted / twisted / test /。

你还可以在哪里进行测试?认真。没有“为什么?”对此。没有明智的选择。

  

分别添加Twisted / README和Twisted / setup.py来解释和安装您的软件

右。你还会把它们放在哪里?再次。没有“为什么?”它们进入顶级目录,因为 - 好 - 这就是目录的用途。它包含文件。

答案 1 :(得分:0)

我不是python的专家,但如果您认为

,从第一个链接读取这一行是有意义的
  • 可能涉及计划/程序涉及项目
  • 可能还有其他人涉及到项目

如果您拥有一致的名称和文件结构,那么人类和计算机都可以更好地理解您的复杂程序。

这涉及以下主题:测试,构建,部署,可重用性,搜索,结构,一致性......

标准连接。

答案 2 :(得分:0)

让我们尝试回答每条规则:

1)你应该有一个名字好的根目录。如果你对你的包进行tarball,那么在root上拥有文件并不是一种好的行为。当我打开包装并且当前文件夹最终混乱了垃圾时,我觉得真的生气。

2)您应该将可执行文件与模块分开。他们是不同的野兽。如果你打算使用distutils,它会让你的生活更轻松。

3)如果您有一个模块,上面的原因不适用。所以你可以简化你的树。

4)单元测试应紧贴其包装。但它们不是包装,因此它是子包装的完美案例。