我可以使用zipimport发布嵌入式python吗?

时间:2010-07-07 23:42:06

标签: python delphi freepascal embedded-language

目前,我正在使用我的应用程序部署完整的python发行版(原始的python 2.7 msi)。这是用delphi制作的嵌入式Web服务器。

Reading this,我想知道是否可以在我的应用程序中嵌入必要的python文件,以减少加载文件并避免与几个python版本冲突。

我之前有过使用python for delphi的经验所以我只需要知道是否只运送带有发行版+自己脚本的python dll + zip就行了(如果存在任何警告我必须知道或者我可以在哪里提供示例看)

2 个答案:

答案 0 :(得分:3)

zipimport应该可以正常使用 - 我不熟悉Python for Delphi,但我怀疑它会禁用该功能(嵌入式应用程序可以这样做,但它是一个不寻常的选择)。请记住,您可以压缩和直接导入的是Python编码的模块(或只是它们对应的.pyc.pyo字节代码) - DLL(即使重命名为.pyd s ;-)需要在磁盘上加载(所以如果你有一个zipfile文件,它需要在应用程序的开头解压缩,例如进入一个临时目录)。

此外,您甚至不需要压缩所有模块,只需要实际需要(通过传递闭包) - 并且您可以轻松找到这些模块是标准Python库的modulefinder模块。我刚刚指出的文档页面上的示例应该澄清一些事情。快乐的拉链!

答案 1 :(得分:0)

是的,这是可能的。

我实际上是用Zipimport library在Python中编写自动化脚本。实际上,我在.py中包含了每个zip文件以及这些脚本所需的配置或xml文件。

然后,我调用一个.command文件,定位__main__.py类,根据我的sys.argv参数重定向到所需的脚本,这非常有用!