当前位置:  开发笔记 > 编程语言 > 正文

使用Python或其他嵌入式脚本语言部署应用程序

如何解决《使用Python或其他嵌入式脚本语言部署应用程序》经验,为你挑选了3个好方法。

我正在考虑在用C++编写的业余爱好项目中使用Python作为嵌入式脚本语言.我不想依赖单独安装的Python发行版.Python文档似乎很清楚一般用法,但我找不到明确的答案.

用我的应用程序部署Python解释器+标准库是否可行?像Lua,Javascript(Spidermonkey),Ruby等其他语言会更好用于此用途吗?

这是我正在权衡不同语言的标准:

否/很少依赖外部安装的包

标准图书馆,功能齐全

好语言:)

不会导致巨大的安装包

编辑:

我想问题应该是:如何使用我的程序的安装程序部署我自己的python库+标准库,这样平台是否已经安装了python并不重要?

EDIT2:

再澄清一下.我不需要有关链接C和Python代码的细节的信息.



1> James Emerto..:

将您的应用程序链接到python库(Windows上的pythonXX.lib)并将以下内容添加到main()函数中.

Py_NoSiteFlag = 1;  // Disable importing site.py
Py_Initialize();    // Create a python interpreter

将您需要的python标准库位放入一个zip文件(名为pythonXX.zip)中,并将此pythonXX.dll放在您分发的可执行文件旁边.在zipfile模块中查看PyZipFile.


找不到任何官方文件,你能指点我吗?
实际上,如果使用zipfile.PyZipFile创建存档,它将只存档.pyc文件.您也可以手动创建存档.启动时间减少,因为zip标头包含所有模块的列表及其二进制偏移量.
还应该注意的是,将python文件放在zip文件中也会带来性能影响.您获得较小的安装大小,但增加了启动时间.这是因为它必须在每次启动时解压缩并编译文件(它不会保存pyc文件).

2> gimel..:

嵌入过程已完整记录:在另一个应用程序中嵌入Python.这些文件提出了嵌入工作的几个层次,选择最符合您要求的层次.

可以在源代码分发的Demo/embed目录中找到嵌入Python的简单演示.

这个演示在这里,应该能够从发行版构建.

非常高级嵌入

超高级嵌入:概述

纯嵌入

扩展嵌入式Python

在C++中嵌入Python

从标准库中,您可以选择不具有过多依赖性的组件.



3> Ali Afshar..:

要通过gimel扩展答案,没有什么可以阻止您运送python.dll,使用它,并设置正确的PYTHONPATH以便使用您自己安装的python标准库.它们只是库和文件,您的安装过程可以只处理它们.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有