首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建一个无需安装本地Python就嵌入并运行Python代码的应用程序?

如何创建一个无需安装本地Python就嵌入并运行Python代码的应用程序?
EN

Stack Overflow用户
提问于 2010-03-22 17:43:59
回答 7查看 5.3K关注 0票数 11

你好,各位软件开发人员。

我想通过嵌入Python解释器来分发一个可编写脚本的C程序。

C程序使用Py_Initialize、PyImport_Import等来完成Python嵌入。

我正在寻找一个只分发以下组件的解决方案:

  • 我的程序可执行文件及其库
  • Python库(dll/so)
  • 包含所有必要的Python模块和库的ZIP文件。

我怎样才能做到这一点?有一步一步的食谱吗?

该解决方案应该适用于Windows和Linux。

提前谢谢。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-03-22 19:12:00

您看过Python的官方文档吗:将Python嵌入另一个应用程序

还有一个由IBM:在C应用程序中嵌入Python脚本提供的非常好的PDF。

你应该可以用这两种资源做你想做的事。

票数 6
EN

Stack Overflow用户

发布于 2010-03-29 19:13:32

我只是在一台没有安装Python的计算机上测试我的可执行文件,并且它工作了。

当您将Python链接到您的可执行文件(无论是动态的还是静态的)时,您的可执行文件已经获得了基本的Python语言功能(操作符、方法、字符串、列表、元组、dict等基本结构)。没有任何其他的依赖。

然后,我让Python的setup.py通过python setup.py sdist --format=zip编译Python源代码发行版,这给了我一个名为pylib-2.6.4.zip的ZIP文件。

我进一步采取的步骤是:

代码语言:javascript
运行
复制
char pycmd[1000]; // temporary buffer for forged Python script lines
...
Py_NoSiteFlag=1;
Py_SetProgramName(argv[0]);
Py_SetPythonHome(directoryWhereMyOwnPythonScriptsReside);
Py_InitializeEx(0);

// forge Python command to set the lookup path
// add the zipped Python distribution library to the search path as well
snprintf(
    pycmd,
    sizeof(pycmd),
    "import sys; sys.path = ['%s/pylib-2.6.4.zip','%s']",
    applicationDirectory,
    directoryWhereMyOwnPythonScriptsReside
);

// ... and execute
PyRun_SimpleString(pycmd);

// now all succeeding Python import calls should be able to
// find the other modules, especially those in the zipped library

...
票数 6
EN

Stack Overflow用户

发布于 2010-03-22 18:42:09

你看过便携式Python吗?不需要安装任何东西。只需复制包含的文件以使用解释器即可。

编辑:这是一个Windows唯一的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2494468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档