1

情况是这样的:我现在工作的公司让我可以自由地使用 java 或 python 来开发我的应用程序。公司主要有java经验。

我决定使用 python,所以他们非常高兴地要求我对他们拥有的与数据库维护相关的所有 python 项目/脚本进行维护。

处理所有这些事情并没有那么糟糕,看看我与 Java 程序员相比有多少空闲时间也很有趣。只有一个,但是项目布局一团糟。

有许多脚本只是简单地放置在整个公司的虚拟机中。其中一些具有复杂的功能,分布在几个模块中(最多 4 个。)

在考虑它的同时,我意识到我不知道如何解决这个问题,所以这里有 3 个问题。

  • 我在哪里放置独立脚本?我们使用 git 作为我们的版本控制系统。
  • 如何以用户不需要深入文件夹来运行程序的方式构建项目的布局(在 java 中,我创建了一个 jar 或一个 jar 和一个 shell 脚本来处理一些引导操作。)
  • 创建易于重用的模块的标准方法是什么(mycompany.myapp.mymodule?)
4

2 回答 2

2

是创建模块层次结构的一种方式:如果您在目录中调用文件__init__.py,Python 将把该目录视为一个包,并允许您使用点分导入来导入其内容:

spam \
       __init__.py
       ham.py
       eggs.py

import spam.ham

包中的模块可以相互引用——参见文档。

如果这些都是数据库维护脚本,我会制作一个名为 DB 之类的包,然后将它们全部放入其中。您可以为更复杂的子包提供子包。所以如果你有一个脚本,我不知道,清理事务日志,你可以把它放进ourDB.clean

import ourDB.clean
ourDB.clean.transaction_logs( )
于 2010-08-12T19:59:30.493 回答
2

我在哪里放置独立脚本?

您根据他们的工作以及人们使用它们的原因来“按功能”组织它们。

语言(Python 与 Java)无关紧要。

您必须将脚本视为专注于某些需求的小型应用程序,并为该应用程序创建适当的目录结构。

我们使用/opt/thisapp/opt/thatapp。如果你想要一个共享的挂载点,你可以使用不同的路径。

如何以用户不需要深入文件夹来运行程序的方式构建项目的布局

您根据他们的工作以及人们使用它们的原因来“按功能”组织它们。在目录的顶层/opt/thisapp,您可能有一个__init__.py(因为它是一个包),也许还有一个main.py启动实际工作的脚本。

在 Python 2.7 和 Python 3 中,您拥有该runpy模块。有了这个,你会命名你的顶级主脚本__main__.py

http://docs.python.org/library/runpy.html#module-runpy

创建易于重用的模块的标准方法是什么(mycompany.myapp.mymodule?)

阅读有关packages. http://docs.python.org/tutorial/modules.html#packages

于 2010-08-12T20:07:58.237 回答