当前位置: 首页 > 面试题库 >

Python应用程序的最佳项目结构是什么?

强烨
2023-03-14
问题内容

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

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

尤其是:

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

问题答案:

没什么大不了的。令你快乐的一切都会起作用。没有很多愚蠢的规则,因为Python项目可以很简单。

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

顶级目录可以包含自述文件,配置文件和其他内容。

困难的选择是是否使用/src树。Python没有区别/src,/lib/binJavaC具有。

由于/src某些人认为顶层目录没有意义,因此顶层目录可以是应用程序的顶层体系结构。

  • /foo
  • /bar
  • /baz

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

这样,另一个项目PYTHONPATH可以包括/path/to/quux/foo重用QUUX.foo模块。

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



 类似资料:
  • 我想知道将应用程序分成多个独立部分的最佳方式(如果可能的话)是什么。例如,如果你有三个独立的单元来做不同的事情,你可能有两个不同的应用程序,它们结合了这三分之二的部分,你会怎么做? 我来自windows后台,在Visual Studio中,您可以在一个解决方案下拥有多个独立的项目,然后您可以在需要的地方重用它们。 你能在Android系统中使用这个吗?我知道我可以把东西放在不同的包中,但不确定如何

  • 问题内容: 以下是我典型的程序的整体结构。 funA funB并在用户单击按钮1、2、3时funC打开另一个Toplevel带有窗口小部件的窗口。 我想知道这是否是编写python tkinter程序的正确方法吗?当然,即使我这样写也可以,但这是最好的方法吗?听起来很愚蠢,但是当我看到其他人编写的代码时,他们的代码并没有弄乱一堆函数,而且大多数情况下都有类。 有没有作为良好实践应遵循的特定结构?开

  • 我试图切换到Android Studio和Gradle,但我有相当多的问题与集成到Studio和Gradle构建。 我有一个依赖于几个库的应用程序。 我想使用Android Studio和Gradle构建系统。 我在用git 我的大多数库都是直接从他们的github位置 目前,我拥有的是: 每个“GH Lib X”目录都是GitHub的git克隆的结果(例如:ActionBarSherlock)

  • 本文向大家介绍Django项目中python类的最佳位置是什么?,包括了Django项目中python类的最佳位置是什么?的使用技巧和注意事项,需要的朋友参考一下 您可以将上述课程放在想要的地方。 示例 然后,您可以使用import导入qux.py模块。 从project.foo.qux导入* 处理大量文件时,使目录更好。例如-

  • 我开始学习JSP和Tomcat容器,并且知道目录必须如何存储,但有几件事让我感到困惑: 如果我们只使用web app,为什么我们需要这里的其余文件夹?(突出显示为蓝色)。我可以只是删除他们和加载我的项目“web”作为根?

  • 问题内容: 我知道实际上没有唯一正确的方法。但是,我发现很难创建一个可以正常工作并且对每个开发人员和管理员都保持整洁的目录结构。github上的大多数项目都有一些标准结构。但是它没有显示在PC上组织另一个文件和所有项目的方法。 在开发机器上组织所有这些目录的最便捷方法是什么?你如何命名它们,以及如何连接并将其部署到服务器? 项目(你正在处理的所有项目) 源文件(应用程序本身) 存储库的工作副本(我