24

我很快将推出一个beta 应用程序,它可以选择在Python上创建自定义集成脚本。

该应用程序将针对Mac OS X和 Windows,而我的问题是 Windows 通常不存在 Python。

我的实际方法是静默运行 Python 2.6 安装。但是我遇到了默认情况下没有激活的问题,并且在使用命令行选项时没有设置路径。而且我担心如果之前安装了 Python 并且我升级到新版本,这可能会破坏其他东西......

所以,我想知道如何干净地做到这一点。如果我复制整个 Python 2.6 目录,并将其放在我的应用程序的子目录中并在那里安装所有内容,可以吗?或者使用 virtualenv 可以运行不同版本的 Python(如果机器中已经安装了 Python?)。

在用 DLL 嵌入 Python 之前我也玩过,发现它很容易但我失去了调试的能力,所以我切换到命令行插件。

我从命令行执行插件并读取 STDOUT 和 STDERR 输出。该应用程序是用 Delphi/Lazarus 制作的。我安装其他模块,如 JSON 和 RPC 客户端、Win32com、ORM 等。我使用bitrock创建安装程序。

更新:最终用户是小企业主,Python 脚本由开发人员制作。我想避免部署中的任何额外步骤,所以我想要一个完全集成的设置。

4

4 回答 4

14

Portable Python文件夹从安装程序中复制到与 Delphi/Lazarus 应用程序相同的文件夹中。为此适当设置所有路径。

于 2009-10-29T23:16:58.067 回答
13

您可以尝试使用py2exe。它会创建一个已包含 Python 的 .exe 文件!

于 2009-10-29T20:30:41.920 回答
4

使用P4D将 python 解释器集成到您的 Delphi 应用程序中。这些组件实际上在两个方向上都有效(Delphi 类作为二进制扩展暴露给 Python,而 Python 解释器在 Delphi 中)。我还在 Google 代码“问题”页面上看到了 Lazarus 兼容性的补丁,但似乎那里可能存在一些未解决的问题。

于 2009-10-29T23:21:13.943 回答
1

我认为将 .EXE 打包与 PyInstaller 或 py2exe 之类的工具以及 Python 编写的插件相结合是没有问题的。创建的 .EXE 可以很容易地检测到它的安装位置,然后里面的代码可以简单地import从一些预先确定的插件目录中提取文件。不要忘记,一旦您将 Python 脚本打包成可执行文件,它还会将 Python 解释器打包在里面,这样您就拥有了 - 使用您自己的代码定制的完整 Python 环境。

于 2009-10-30T05:27:32.697 回答