如何在没有安装python的系统上执行带有python代码的c++代码

How to execute a C++ code with a python code embedded on a system without python installed

本文关键字:代码 python 执行 行带 c++ 系统 安装      更新时间:2023-10-16

我试图用Python嵌入c++创建一个简单的游戏。python代码嵌入在我的c++代码中。为此我使用了Python/C API。我想实现两个目标:

1)应用程序应该能够在没有安装Python的计算机上运行。

2)应用程序应该是一个独立的可执行文件(.exe)

例如,下面的简单代码只有在系统已经安装了python的情况下才能工作:

#include <Python.h>
#include <conio.h>
#include <stdio.h>
int main()
{
char pySearchPath[] = "Python27"; 
Py_SetPythonHome(pySearchPath); 
Py_Initialize();
PyRun_SimpleString("print 'Hello World'");
PyRun_SimpleString("for i in range(5):n"
    "tprint i,n");
Py_Finalize();
getch();
return 0;
}

Python需要安装在计算机上,或者这些文件应该在可执行文件的目录中:

        python27.dll
        Python27
            DLLs (contents of DLLs folder)
            Lib (contents of Lib folder)

问题:我如何在我的.exe中包含/添加/绑定这些文件,以便我的应用程序可以在没有安装python的系统上执行?我希望有一个独立的可执行文件。这可能吗?如果是,那么请提供一些关于如何实现这一点的提示?我已经花了很多时间在网上搜索,但不幸的是我没有找到任何有用的东西。

也许,有另一种可能来解决这个问题,但我不确定。例如,下面的方法可以工作吗?

python代码----转换---->字节码----->本机代码------->在程序中导入

UPD:使用Cython生成.pyd文件(.dll)。我怎么能生成。h文件从它或调用一些函数在我的应用程序(如果它是可能的,当然)?

谢谢。

是的,你可以在c++中嵌入python。谷歌给我提供了两个链接,我认为对你可能有用。我不确定你是否已经知道这些链接,因为你在你的研究问题中没有提到。

http://www.codeproject.com/Articles/11805/Embedding-Python-in-C-C-Part-I这个链接有关于这个主题的两部分教程。

http://realmike.org/blog/2012/07/05/supercharging-c-code-with-embedded-python/这个链接也在讨论同样的话题。

基本避免在答案中粘贴离场链接。但不幸的是,你的问题的答案太长,我被迫提供链接在这里。很抱歉。为了安全起见,您应该从这些链接下载整个教程,以便将来如果教程离线,您不会后悔!