【问题标题】:How can I deploy a Perl/Python/Ruby script without installing an interpreter?如何在不安装解释器的情况下部署 Perl/Python/Ruby 脚本?
【发布时间】:2010-10-01 14:15:01
【问题描述】:

我想写一个本质上是一个正则表达式数据清理器的软件。我将在 CSV 中获取联系人列表,并从该人的姓名中删除所有非单词字符等。

这个项目全都写了 Perl,但我的客户群主要是非技术性的,在 Windows 上安装 Perl 对他们来说不值得。

关于如何使用 Perl/Python/Ruby 类型语言而无需在他们的计算机上安装解释器的所有想法有什么想法吗?

考虑过网络,但出于商业原因,它行不通。

【问题讨论】:

    标签: python ruby perl


    【解决方案1】:

    您可以获得所有三种语言的 Windows 可执行文件。

    【讨论】:

    • 这些实际上并不是编译器,它们只是将 Perl 代码打包到一个专门设计的程序中。我不知道其他例子。
    • 我不知道,如果您将“编译”视为英语单词而不是计算单词,那是准确的:这些打包程序收集必要的部分并将它们捆绑在一起。就像合辑的创作者将单曲收集到一个捆绑包中一样。
    • @slim:没错,但它可以被解释为任何一种方式。使用不同的词就不会那么模棱两可了。
    • @Adam 也是如此。但不同的词也不对。它没有被转换。我想既然采用了“编译”,您就可以使用“收集”这个词。这是链接器使用的一个词……但它与链接非常相​​似。
    • @slim:我想我会用一个不太具体的词。 :)
    【解决方案2】:

    您可以使用Perl Archive Toolkit 携带一个最小的 perl 核心 + 所需的模块 + 您的 Perl 程序。

    您甚至可以使用 PAR Packer 将其转换为 Windows exe 文件,从最终用户的角度来看,该文件可以像任何其他程序一样运行。

    【讨论】:

      【解决方案3】:

      使用PAR, the Perl Aachiver 已经在其他答案中提到过,这是一个很好的解决方案。 building executables using PAR 有一个简短的教程,去年以 Perl Tip 的形式发布。

      在大多数情况下,如果您的构建系统上已经安装了PAR::Packer,您可以创建一个没有外部依赖项或要求的独立可执行文件:

      pp -o example.exe example.pl
      

      在大多数情况下,PAR 会为您完成确定模块依赖项的所有艰苦工作,但如果出现任何错误,您可以使用其他命令行选项来确保它们被包含在内。有关详细信息,请参阅pp documentation

      一切顺利,

      保罗

      【讨论】:

        【解决方案4】:

        你确定头痛吗? ActivePerlStrawberry Perl 非常容易安装在 Windows 上,只需点击几下鼠标。据我所知,Python 很容易安装。

        您是否尝试过安装其中的任何一个,看看它有多容易?如果这些对您的客户来说很难,我看不出给他们一个运行脚本会变得多么容易。

        或者,也许您可​​以使用 Docker image for Perl 之类的东西,或者将其作为 Web 服务而不是应用程序提供。

        【讨论】:

        • 好的,头痛是一个很强烈的词。
        • 当然,这很简单,但有时您只是不想在客户端机器上安装东西(如解释器)。拇指驱动器上的独立应用程序可以是一个方便的工具。
        • 有时您没有在计算机上安装程序的权限。
        • 草莓 Perl 还有一个便携版,用户只需要将它复制到他的系统中
        【解决方案5】:

        您可以将脚本转换为可执行文件。在 Python 和 Windows 中,您可以使用 py2exe 轻松做到这一点。 Perl 和 Ruby 也有类似的解决方案,但我相信 py2exe 既免费又可靠。

        【讨论】:

          【解决方案6】:

          非技术观众?您还需要某种基本的用户界面,可能是“图形”类型。你可以试试wxPython,它可以用py2exe打包成一个Windows可执行文件,用py2app打包成一个Mac应用程序。

          【讨论】:

          • wxPython + py2exe = 25+ meg 程序。
          • 现在 1TB 磁盘要 50 美元,谁在乎呢?
          【解决方案7】:

          Shoes 可以为其他平台制作 exe 和二进制文件,并且您可以获得集成的 GUI。

          【讨论】:

            【解决方案8】:

            Ruby 有OCRA 程序,可以将所有内容打包成一个漂亮整洁的 .EXE 文件。不再维护 RubyScript2EXE 程序,所以这将是更好的解决方案。

            【讨论】:

              【解决方案9】:

              “在 Windows 上安装 Perl 对他们来说不值得”真的吗?有那么复杂吗?

              Python 有一个简单的 .MSI,它可以整齐地自行安装,没有麻烦或大惊小怪。

              一个简单的应用程序只是几个 .py 文件,所以,我看不出有什么大的痛苦因素。

              您最了解您的客户。

              我发现以下内容还不错。 而且更容易支持,因为您的升级将只是一个带有简单、易于使用的源代码的 .MSI。

              1) 双击此 .MSI 文件以安装 Python(或 Perl 或其他)

              2) 双击另一个.MSI 安装好东西

              【讨论】:

              • 它并不是那么复杂,但脚本的想法是如此简单,以至于如果它有任何困难,它可能会提供足够的阻力,对他们来说不值得。
              • 价值不言自明。如果脚本不够有价值,那就找一些更酷、更令人无法抗拒的东西。
              • 您还必须考虑在客户端机器上安装 Perl 意味着本地系统管理员除了脚本之外还必须维护另一件事,而使用打包脚本时,他们只是维护它。假设有一个系统管理员..
              • 很明显,您没有为偏执的 IT 安全部门的客户工作过。如果您必须“安装”它,则必须经过数月的安全审核(并且您必须首先提交业务案例以证明努力的合理性)。无需安装的单个 .exe 文件要容易得多,您只需说“我们自己编译它”,问题就会神奇地消失(他们从不询问编译器来自哪里)。
              猜你喜欢
              • 2012-01-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-03-04
              • 2020-08-11
              • 2016-02-21
              • 2012-02-22
              • 2015-08-21
              相关资源
              最近更新 更多