我在掌握如何构建Python项目方面遇到了一些麻烦。我已阅读jcalderone: Filesystem structure of a Python project并一直在查看CouchApp的源代码,但我仍感到非常困惑。
我理解 文件应该如何构建,但我不理解为什么。我很乐意,如果有人能够详细介绍这个,或者可以向我解释一下。简单地说明如何设置基本的python项目,以及文件如何相互交互。
我认为这绝对是来自其他语言的人,比如C,C ++,Erlang ......或者以前从未编程的人,可以从中受益。
答案 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)单元测试应紧贴其包装。但它们不是包装,因此它是子包装的完美案例。