如何在没有安装python的系统上执行带有python代码的c++代码
How to execute a C++ code with a python code embedded on a system without python installed
我试图用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/这个链接也在讨论同样的话题。
基本避免在答案中粘贴离场链接。但不幸的是,你的问题的答案太长,我被迫提供链接在这里。很抱歉。为了安全起见,您应该从这些链接下载整个教程,以便将来如果教程离线,您不会后悔!
- 如何使用 ctypes 停止和重新启动从 Python 运行的C++代码
- 通过Python Distutils(用于Python C扩展)使用可重定位的设备代码编译CUDA代码
- 如何将 c++ get 函数代码转换为 opencv 算法中使用的 python
- 尝试通过Process Pipe发送/接收到python包装器,c ++代码
- Python 3.8:运行外部C++代码:无法导入模块
- C++和 Python 中的代码相同,但输出不同
- 将代码从 Python 转换为 C++ 时出错
- 将 c++ 代码转换为 python,使用运算符?
- 如何将二进制文件头示例代码 (C++/C#) 转换为 Python?
- 在 c++ 中逐行读取文件(将代码从 Python 转换为 C++)
- 如何大致将 cpp 代码结构转换为 python
- 连续运行C++代码和 Python 代码
- 在cpp中使用boost-python的python代码是否进行动态内存分配
- 困在PyObject_GetAttrString():如何从C++代码中获取Python函数脚本
- 加快一个长python代码的速度,因为只有一个块,所以速度很慢
- 我最近更改了编译器路径以运行 c++ 代码,但现在我无法运行任何 python 代码。我该如何解决这个问题?
- 如何使用python运行Hello world c ++代码
- Cython:如何从C级类型获取'actual Python type'(类型代码/dtype)
- Python 等效代码,可像C++一样直接附加两个整数
- 用boost编译一些代码.Python在win7-64位