听起来您正处于冒险和一些新的学习曲线的开始阶段。我会为你创造的意愿鼓掌。以下是您开始旅程时需要考虑的一些事项。
仅供参考:“软件”通常是一个单词,没有空格。
根据“软件”的上下文,您的意思似乎是“应用程序”。
我提到“软件”和“应用程序”并不是为了让您感到难受,而是因为我认为 1) 当您寻找完成某事的方法时(例如,您会得到“python 应用程序安装程序”比“python 软件安装程序”更有用,并且 2)您可以更清楚地向人们解释您正在尝试什么。
所以。您的应用程序将需要一个用于您的脚本集合的用户界面。您想要图形用户界面 (GUI) 吗?还是命令行界面 (CLI)?
GUI:比 CLI 更复杂:
对于 GUI,获得在 Windows 和 Linux 上运行的东西会更加复杂。
据我所知,没有一种简单的方法可以创建一个在 Windows 和 Linux 上运行而不添加其他工具的单一 GUI。也许 python 有简单的 GUI 用户界面的东西,你可以使用它。
对于 perl,我会在这里为您指出:“Windows 上的 Perl GUI 编程”Perl GUI programming on Windows
这列出了一些要考虑的 Perl 方法,您必须研究它们并查看哪些也能够在 Linux 上运行。小心包含您需要与您的应用程序打包(或记录如何安装)的其他库。
CLI:比 GUI 更简单:
由于它们现在只是脚本,我建议从 CLI 开始,这可能意味着清理您的参数处理(Perl 中的 @ARGV,我无法评论 Python)。
通读您的代码并找到您在为新内容运行脚本时更改的文字,这些内容将成为您的参数。如果开始看起来您创建了太多参数,那么您可能想要查看配置文件(某种属性文件)。
您可以更轻松地开始使用 CLI,并且您可以随时返回并在未来版本中添加 GUI 选项。我发现设计一个经过深思熟虑的 CLI 可以更容易地专注于对 GUI 重要的事情,因此它应该有助于您最终的 GUI 变得更好。
包装
打包您的应用程序将是一个挑战。
您的脚本是否需要任何不属于 python 和 perl 安装默认部分的库?如果是这样,您需要找到一种方法来提供这些(例如,将它们包含在您的发行版中,或者包含您的用户可以遵循以下载和安装库的文档)。
我无法评论 pyinstaller。
对于 Perl,我将向您指出有关分发 Perl 应用程序的问题:Distributing a Perl Application
用户技能
您希望您的用户具备多少技能?
如有必要,他们可以安装 python 和 perl 解释器吗?并非每个用户都具有这种技术技能。
您想确保您的脚本验证他们需要的最低 python 和 perl 版本吗?
文档
请参阅上面的用户技能。您需要提供可用的文档。
这将取决于谁将使用您的脚本。你的目标用户是什么样的?你能写一个“5 行”的总结,让我想下载它们并尝试它们吗?这将是一个有用的练习,可帮助您专注于如何呈现脚本。
开放源代码与封闭源代码(许可)
这也与许可有关。您的目标是商业产品吗?给世界另一个开源礼物?这些都是很好的事情,但是您需要为您的应用程序选择合适的许可证。如果您想避免分发脚本的源代码,您还需要做一些工作(我并不是建议您采用一种或另一种方法,只是您在将其发布到整个互联网之前做出决定)。
测试
测试您的应用程序将是一项挑战。
如果你的脚本没有自动化测试,你会疯狂地尝试验证它在你希望它运行的任何地方运行。
您的脚本是否有单元测试和测试套件,以便验证它们在不同版本的 Windows 和各种 Linux 发行版上正确运行?
如果您的脚本非常简单,那么它们运行在 32 位还是 64 位操作系统上可能并不重要。
也许它们是否在 Windows 10、Windows 8.x、Windows 7.x 或各种版本的 Windows Server(2012、2008,...)上运行并不重要。
也许它们在 RedHat、Suse、Ubuntu、Mint 上运行并不重要......
您可能需要一些健全性检查来验证您的安装程序是否正常运行并且环境是否合适。
在不知道您的脚本做了什么的情况下,很难说它们从测试中受益多少。
免费建议:只选择一种脚本语言并使用它运行
我将以一些完全免费的建议结束(值得您为此付出的代价:-))
考虑真的很努力选择一种脚本语言并用它编写所有内容。
支持两个脚本系统会增加很多额外的复杂性,如果我在做你描述的事情,我会认真考虑整合到单一语言中,只使用 Python 或只使用 Perl。与学习创建安装指南和使用两种不同的语言打包应用程序相比,将 Python 脚本重写为 Perl(或其他方式)所花费的时间和精力可能要容易得多。