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

标签 python c++ exe

我正在尝试使用嵌入了 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 中包含/添加/绑定(bind)这些文件,以便我的应用程序可以在没有安装 python 的系统上执行?我想要一个独立的可执行文件。是否可以?如果是,请提供一些有关如何完成此操作的提示?我已经花了很多时间在互联网上搜索,但不幸的是我没有找到任何有用的东西。

可能还有其他方法可以解决这个问题,但我不确定。例如,以下方法是否可行?

Python-Code ----transforming----> bytecode -----> native code -------> import in programm

UPD:我使用 Cython 生成 .pyd 文件 (.dll)。如何从其生成 .h 文件或调用我的应用程序中的某些函数(当然,如果可能的话)?

谢谢。

最佳答案

是的,您可以在 C++ 中嵌入 Python。 Google 为我提供了两个我认为对您有用的链接。我不确定您是否已经知道这些链接,因为您在关于您的研究的问题中没有提到。

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/此链接也在讨论同一主题。

基本避免在答案中粘贴站外链接。但不幸的是,你的问题的答案太长了,我不得不在这里提供链接。对不起。为安全起见,您应该从这些链接下载整个教程,以免将来教程离线时您不会后悔!

关于python - 如何在没有安装 python 的系统上执行带有 python 代码的 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23477783/

相关文章:

python - Django/Python 中是否有工具可以查看子类及其从多个父类继承的所有属性和方法?

c++ - 查找 "cannot access private member declared in class ' QObject 的根本原因'”

delphi - 使用 Delphi 构建大于 100MB 的 exe 是否有任何风险?

python - 无法在 Windows Powershell 中打开 python.exe

python - 安装后无法导入keras

python - Visual Studio 代码中的 Pylint "unresolved import"错误

python - 添加最近 10 个日期的指示器

c++ - 如何为 std::array 的列表初始化构造函数编写包装器?

c++ - 将贝塞尔曲线解构为具有等间距斜率的线段

javascript - 是否可以从 Firefox 或 IE 网页中运行的 Javascript 启动 Windows 进程