VS2010 c++内嵌python环境以及生成发布安装包

一、C++内嵌python环境

1、VS工程属性设置
在Additional Include Directories里添上D:\Python27\include,在Additional Library Directories里添上D:\Python27\libs,其中D:\Python27是我的python安装目录;
做完这些之后,就可以在cpp里#include <Python.h>

</pre><pre name="code" class="cpp">#include <Python.h>
#include "CThread.h"

void* PyFunc(void *param)
{
	char pySearchPath[] = "python27";
	Py_SetPythonHome(pySearchPath);   // 设置python库路径 	
	PyObject* pName = NULL;
	PyObject* pModule = NULL;
	PyObject* pDict = NULL;
	PyObject* pFunc = NULL;
	PyObject* pArgs = NULL;
	PyObject* pRet = NULL;
	Py_Initialize();
	if(!Py_IsInitialized())
	{
		return NULL;
	}
	PyRun_SimpleString("import sys");
	PyRun_SimpleString("sys.path.append('./')");
	pName = PyString_FromString("hexineditor");
	pModule = PyImport_Import(pName); 
	if(!pModule)
	{
		return NULL;
	}
	pDict = PyModule_GetDict(pModule);
	if(!pDict)
		return NULL;
	pFunc = PyDict_GetItemString(pDict,"mainfuc");
	pArgs = Py_BuildValue("ii",12,14);
	pRet = PyEval_CallObject(pFunc,pArgs);
	int a = 0, b = 0;
	if(pRet&&PyArg_ParseTuple(pRet,"ii",&a,&b))
	{
		int c = a+b;
	} 
	Py_Finalize();
	return NULL; 
}

其中Py_SetPythonHome(pySearchPath);是设置python的库环境路径,如果是在已安装同一版本python的PC上运行,则此句可删掉,但是如果想要将程序发布在没装python的PC上,则必须设置。至于调用python的具体语法见
c++调用python浅析。至此可在c++里嵌入python程序。
二、程序安装包的制作
安装包制作已在 VS安装包制作里面说的很清楚,不再赘述。特别注意一点,如果想在裸机上发布,请将MFC程序设为Use MFC in a Static Library,并且在C盘内找出如下几个文件,拷贝到程序运行目录,切记manifest文件和msvc*90.dll文件的version要一致,version在manifest文件的第四行,可修改为一致,具体版本应该在你找到的.dll文件的上层目录的目录名中含有。如果在裸机上还提示应用程序故障,可通过 计算机-》管理-》事件查看器-》应用程序,查看缺损的文件和库,添加进去即可。
下面就是配置python环境了,将python.dll和.py文件放在执行文件的同一目录,并在该目录新建文件夹python27,进入python27,将python安装目录的DLLs文件夹和Lib文件夹拷贝过来,在制作安装包的时候,按照目录结构,添加进去,这样在裸机上发布的时候也可以运行python环境了。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值