【问题标题】:creating a soft ware with UI using python scripts [closed]使用 python 脚本创建带有 UI 的软件 [关闭]
【发布时间】:2015-12-28 00:57:23
【问题描述】:

我正计划创建一个用于分析生物数据的软件,我们中的一些生物学家不会有太多的编程技能,但我们会做很多重复性的任务,并且需要编写更多我们经常使用的脚本或程序. 我决定将其缩小到一个非常重要的任务,它是一个搜索脚本,即查询基因数据库-(数据),已经有一个程序可以做到这一点,称为 ncbi-blast,通常需要熟悉使用命令行,也需要ubuntu或windows,但如果你必须分析产生的大量结果,那就很麻烦了。

所以我想把我的一些python脚本打包成一个软件,以便其他人可以方便地分析他们的工作

开放源代码与封闭源代码(许可)

我打算在软件中向用户免费提供一些功能,尽管在稍后阶段,我打算合并需要负担得起的许可证的管道

测试 所以有了这个功能,它使测试变得更简单了——我还不知道,我不介意从 linux-ubuntu 和 windows 作为平台开始。 我很欣赏你关于只选择一种语言的建议,我将使用 python,我希望 tyhe 软件至少支持用其他语言(如 R)创建的其他免费程序,就像客户端在需要时安装的插件一样。 我希望这对我已经很复杂的情况有更多的了解 谢谢

【问题讨论】:

    标签: python user-interface


    【解决方案1】:

    听起来您正处于冒险和一些新的学习曲线的开始阶段。我会为你创造的意愿鼓掌。以下是您开始旅程时需要考虑的一些事项。

    仅供参考:“软件”通常是一个单词,没有空格。 根据“软件”的上下文,您的意思似乎是“应用程序”。

    我提到“软件”和“应用程序”并不是为了让您感到难受,而是因为我认为 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(或其他方式)所花费的时间和精力可能要容易得多。

    【讨论】:

    • 感谢您提供如此详细的反馈,我当然意识到如果我继续执行这项任务将是多么复杂。我将在这里用更多的背景来阐述你的观点。
    • 睡一觉之后再读一遍我不想让一个有趣的项目看起来非常困难......我认为你想去的地方(最终)太远了跳。所以 - 我只想提一下我能想到的最简单的开始方法是将你的脚本作为一个 GitHub 项目开源并以这种方式发展它们 - 你不必在第 1 天处理我写的所有内容,并且如果您发现这些脚本按原样有用,那么可能还有其他人也会这样做。祝你好运:-)
    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2011-11-10
    • 2013-09-19
    • 2010-10-04
    • 2017-12-29
    相关资源
    最近更新 更多