python高阶学习之一:c++调用python
python高阶学习之一:c++调用python
python已经成为当今人工智能和数据分析的主流语言,掌握python就好像拿到了进入AI分析殿堂的门票一样,无论如何任何事情都要从一点一滴做起,不要在浮沙上筑高台。找了基本书,看了几个专业网站的资料。无外乎基本语法、变量、流程、函数的老套路,虽然python和其他的语言,有些地方不一样,但是都脱离不了介绍一种编程语言的套路。作为编程多年的一名程序员,对于这种老的套路已经不再感冒,因为经常用c/c++编程,对c/c++的偏爱是java和.net程序员所不能理解的,还是对c/c++情由独中。但不要因为有了鱼,就不去尝试熊掌!因为熊掌也是好吃的!所以本人的python学习,就是从鱼和熊掌兼而得之的思路来学习的。因此本python的学习,从c++调用python开始。
第一步建立一个vc的应用程序,建立工程:callpython
第二步开始进行环境配置:
配置附加包含目录include
配置lib路径
指定输入附加依赖项
完成了指定的设置选项,对了这里要强调两点:
第一点:我本人使用的是64位的win10,所以最初建立的win32工程,要修改配置为64位,这个对于经常使用vc程序的人,不用啰嗦介绍,非常简单。
第二点:大家看到C:\Python35,这个路径一定很奇怪,说白了,前面没有介绍python环境的安装,这里补充一下。
我也曾下载最新的python3.8.3的包进行了安装,但是在包含进来python.h文件时,编译报错,估计是上传代码不全,或者我没有研究清楚的缘故。因为事情比较急,急于搭建出开发环境来,所以找了个稳定的版本先运行起来再说。
查了一下python3.5版本,比较稳定,所以下载安装了。安装到c:\Python35目录中。
环境配置好了,下面进入第三步,开始上代码。
第三步:写代码
这里是vc的代码:
#include "stdafx.h"
#include"C:\Python35\include\Python.h"
#include <iostream>
using namespace std;
int main()
{
Py_SetPythonHome(L"C:\\Python35");
Py_Initialize(); //使用python之前,要调用Py_Initialize();这个函数进行初始化
PyObject * pModule = NULL; //声明变量
PyObject * pFunc = NULL; //声明变量
if(!Py_IsInitialized()){
printf("python初始化失败");
return -1;
}
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
PyRun_SimpleString("print(sys.path)");
PyRun_SimpleString("print('Hello World!!')");
PyRun_SimpleString("import helloworld"); /*调用python文件*/
PyRun_SimpleString("helloworld.printHello()");/*调用python文件中的函数*/
Py_Finalize();
getchar();
return 0;
}
下面是 helloword.py文件
def printHello():
print("Hello World in python!")
完成写代码。
第四步:编译运行。
完美收关!