2011-02-17 69 views
2

我有一些麻烦了解如何构建我的Python项目。我已阅读jcalderone: Filesystem structure of a Python project,并一直在寻找CouchApp的源代码,但我仍感到非常困惑。在Python中的项目构造和文件实现

我明白如何的文件应该是结构化的,但我不明白为什么。如果有人能够详细解读本文,我会很喜欢,或者可以向我解释。简单介绍如何设置一个基本的python项目,以及这些文件如何相互交互。

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

+0

第1步。编写一个单文件应用程序。第2步。了解结构。认真。如果您还没有试图将所有内容写入单个文件,那么解释它造成的所有问题是非常非常非常困难的。 – 2011-02-17 20:53:28

回答

1

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

不知道为什么这不清楚。这似乎很明显。这一切都必须在一个目录中。

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

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

这是Linux的工作方式。可执行文件位于bin目录中。它可以很容易地把这个特定的目录放在你的环境变量中。

如果您的项目可表达为一个Python源文件,然后将其放入目录并将其命名为与您的项目相关的内容。例如,Twisted/twisted.py。

没错。你有/ Twisted,/ Twisted/bin和/Twisted/twisted.py与你的实际运行代码。你会把它放在哪里?

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

如果需要多个源文件,创建一个包,而不是(扭转/扭曲/,用一个空的扭曲/扭曲/ 初始化的.py)并在其中放置您的源文件。例如,Twisted/twisted/internet.py。

这只是Python软件包的工作方式。他们的目录是__init__.py文件。这个教程很清楚。

把你的单元测试放在你的软件包中的一个子包中。Twisted/twisted/test /。

你会在哪里放置测试?认真。没有“为什么?”对此。没有明智的选择。

添加双绞线/ README和扭曲/ setup.py解释和安装软件,分别

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

+0

这是什么让我失望,是我没有看过的蟒蛇项目,使用这样的结构。类似的东西,但没有“垃圾桶”或任何东西。这种不确定性让我怀疑我该怎么做。 – chrisbuchholz 2011-02-17 21:23:11

0

我不是蟒蛇专家,但自第一个链接阅读此行是有道理的,如果你认为

  • 有可能是参与丝毫项目的计算机/程序
  • 可能有其他人参与白衣项目

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

这涉及到的主题,例如:测试,构建,部署,可重用性,搜索,结构一致性...

标准使得连接。

+1

我想我或者没有解释得很好,或者你误解了我。我的意思是_why_,并不是为什么我应该遵循被认为是“结构”的结构,但是为什么文件和文件夹被放置得像它们一样。例如。在顶级文件夹中有一个带有程序名称的文件夹,并在该文件夹内具有程序名称 .py。该文件如何与程序的其他部分相关联等等。这是_why_,因为我错过了需要的细节。 – chrisbuchholz 2011-02-17 20:28:46

0

让我们试着回答每一个规则:

1)你应该有一个好名字一个根目录。如果你打包一个tar包,在根目录下的文件并不被认为是好行为。我感到确实生气,当我解压缩一些东西,当前文件夹结束与垃圾混杂。

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

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

4)单元测试应该密切关注它的包。但它们不是包装,所以它是分包的最佳例子。