2

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

我了解文件的结构应该如何,但我不明白为什么。如果有人可以帮我详细介绍一下,或者可以向我解释,我会很高兴。简单说一下如何设置一个基本的 python 项目,以及文件如何相互交互。

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

4

3 回答 3

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。

This is just the way Python packages work. They're directories with __init__.py files. The tutorial is pretty clear on this.

put your unit tests in a sub-package of your package Twisted/twisted/test/.

Where else would you put your tests? Seriously. There's no "why?" to this. There's no sensible alternative.

add Twisted/README and Twisted/setup.py to explain and install your software, respectively

Right. Where else would you put them? Again. There's no "why?" They go in the top directory because -- well -- that's what a directory is for. It contains files.

于 2011-02-17T21:07:06.083 回答
0

我不是 python 专家,但是如果您认为从第一个链接阅读此行是有道理的

  • 项目中可能涉及计算机/程序
  • 可能还有其他人参与了这个项目

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

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

标准使连接。

于 2011-02-17T20:12:31.450 回答
0

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

1)你应该有一个好名字的根目录。如果你为你的包制作一个 tarball,那么在根目录下有文件被认为是不好的行为。当我打开一些东西并且当前文件夹最终被垃圾堆满时,我感到非常生气。

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

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

4) 单元测试应该与它的包紧密结合。但它们不是包,因此它是子包的完美案例。

于 2011-02-17T21:00:23.657 回答