c++嵌入python

环境:
win10
Visual studio 2017
python3.6.5

重点:

  1. 知道自己python的安装路径
  2. python安装路径中找到libs目录,复制libs目录下python36.lib,重命名一份为python36_d.lib

流程:
在vs 项目属性中设置参数如下:

  1. 在VC++目录下的包含目录加入python的include目录, 在库目录中加入python的libs目录, 在链接器的输入中的附加依赖项中加入python36.lib, python36_d.lib, 网上有人加了后面那个成功了,我是都加了进来!
  2. python代码:
def Hello():
    print("Hello")


def Add(a, b):
    return a + b
  1. c++代码:
# include <Python.h>
using namespace std;

int main()
{ 
	Py_Initialize();              //初始化,创建一个Python虚拟环境
	if (Py_IsInitialized())
	{
		PyObject* pModule = NULL;
		PyObject* pFunc = NULL;
		pModule = PyImport_ImportModule("demo1");  //参数为Python脚本的文件名
		if (pModule)
		{
			pFunc = PyObject_GetAttrString(pModule, "Hello");   //获取函数
			PyEval_CallObject(pFunc, NULL);           //执行函数
		}
		else
		{
			printf("导入Python模块失败...\n");
		}
	}
	else
	{
		printf("Python环境初始化失败...\n");
	}
	Py_Finalize();
}
  1. python代码文件名字为demo1, 函数为Hello!先运行c++生成解决方案,然后把python文件放在c++编译成功的.exe文件下,可运行成功!
    在这里插入图片描述
    最后结果是能出现python文件print的内容!

以上这种方法适合本机装了python环境的, 但是对于没有python环境的不能运行,解决方法就是将python的环境一起打包出去,python安装目录下的DLLs和Lib目录复制到运行目录下也就是.sln所在的目录下,然后将python安装目录下的include和libs复制出来,将VC++目录下的包含目录,库目录,链接器那边的路径换成复制后存放的路径,就可以完成打包,在没有python环境的电脑运行!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值