python3 C/C++如何调用python的简单实例

python3 C++如何调用python的简单实例(windows)

看了一些帖子,情况各有不同,细节也参差不齐。想简单总结一下C++如何调用python的例子,为了方便,自己使用的python版本是Anaconda3集成安装下的python,实现了简单的调用过程。(为什么要提到Anaconda,如果是集成包安装python的方式,那么跟官网下单独安装python包在路径添加会有所不同)

环境:

  1. Windows 10
  2. Python 3.6
  3. Visual Studio 2015

配置步骤:

1. 环境变量
添加方法:win+R,输入sysdm.cpl,选择高级环境变量,在用户变量path里面添加python根目录的路径,如果是Anaconda安装的,比如我,是C:\Users\qgl\Anaconda3;如果你是官网单独安装的,那么就是C:\Users\qgl\pythonxx(xx:版本号),为了保险,我还在系统变量以及用户变量都新建了新的变量pythonhome,均是C:\Users\qgl\Anaconda3
2. 新建项目
新建一个win32控制台应用程序,因为Anaconda3是X86_64位,所以这里有个坑点,需要在配置管理器里将win32改为X64位。
python3 C/C++如何调用python的简单实例_第1张图片
3. 调试属性
(1)C/C++ -常规-附加包含目录:(编辑),Anaconda下的python写C:\Users\qgl\Anaconda3\include,单独安装的python写C:\Users\...\pythonxx\include
python3 C/C++如何调用python的简单实例_第2张图片
(2)链接器-常规-附加库目录,Anaconda3安装的python,写C:\Users\qgl\Anaconda3\libs;官网下安装的python同(1)安排。
python3 C/C++如何调用python的简单实例_第3张图片
(3)链接器-输入-附加依赖项,根据版本填写,我的是python36.lib
python3 C/C++如何调用python的简单实例_第4张图片
4. 编写C++源文件
代码如下:

// c2python_demo4.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "Python.h"

int _tmain(int argc, _TCHAR* argv[])
{
	Py_Initialize(); 

	PyRun_SimpleString("import sys; sys.path.append('./')");     //遍历路径下的文件
	PyRun_SimpleString("import demotest");     // 引入python写好的模块 demotest.py

	PyRun_SimpleString("print(demotest.hello(4))");   //带入变量,得到调用结果

	Py_Finalize();

	while (1) {
		//# 死循环,防止程序自动退出。
			int i = 0;
	}
	
}

5. 调用python
需要在C++的项目解决方案里的源文件新建一个demotest.py,将写好的python模块内容copy进去。(我这样做是为了以防直接添加现有项找不到模块路径,如果其它尝试也可以的话,欢迎留言讨论)
代码如下:

import math

def hello(x):
    print('Hello to c++ world!')
    a = x*x
    print(a)

6. 运行结果
使用Debug下的本地调试结果:
python3 C/C++如何调用python的简单实例_第5张图片

调用成功,供其他参考。

你可能感兴趣的:(python3,C/C++)