独立脚本还是作为模块?

时间:2014-09-03 21:38:00

标签: python perl module packages

选择制作模块/包或保持脚本独立时,我总是处于两难境地。

我经常用Perl或Python编写一些小脚本/程序来做一些工作。有时我在几个程序中使用相同的子程序,但它们只是小的子程序,这就是我的困境。

如果我保持脚本独立,任何人都可以在不安装任何软件包的情况下运行它。如果它是单个文件,它可以在任何地方使用。但是,如果我创建一个模块,我的用户将需要在使用我的脚本之前安装它。我需要考虑依赖模块不可用的例外情况,以后用户在安装所需模块时可能会遇到问题。

所以,为了避免依赖性问题。我更喜欢有一些冗余而不使用任何额外的软件包(只有我可以这样做。显然我不会在我的所有脚本中重新实现XML::Twig,但我可以为INI解析器或Perl执行此操作JSON转换器)。

另外,我通常将所有脚本放在/usr/local/mycompany/bin

这样的目录中

对于不超过200行且少于20人使用的脚本/程序采用的最佳策略是什么?

编辑:

我不是要求个人意见。我只是从那些有良好编程经验的人那里寻找一个非常务实和理性的答案。

给你一个更具体的例子。我有一个脚本,以专有格式解析配置文件。这种格式被我公司的许多人使用。但是只有我的脚本使用我的解析器。我想我只有三个选择:

  1. 在我的5个脚本中放置解析器(大约50行)。
  2. 制作一个需要在Perl / Python发行版中安装的好模块。
  3. 使用位于其他脚本的同一目录中的独立库。

1 个答案:

答案 0 :(得分:0)

虚假的困境。你可以一次做两件事。

您可以创建一个将在脚本中使用的模块,然后在部署脚本时将其包含在内。可以将其作为本地模块文件包含,也可以将模块和脚本实际汇总到一个文件中。

这样,你的东西不需要单独安装任何模块。