博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习笔记之六:在VS中调用Python
阅读量:6212 次
发布时间:2019-06-21

本文共 985 字,大约阅读时间需要 3 分钟。

 

 

1,安装配置好Python本身的运行环境,以能在命令行下运行py脚本为准

2,将Python的根目录下的include文件夹,添加到VS的项目属性->配置属性->C/C++->"附加包含目录"中

3,将Python的根目录下的libs文件夹,添加到VS的项目属性->配置属性->链接器->"附加库目录"中

4,在C++项目中添加Python头文件:

#include 

5,添加必要的Python初始化和终止化函数:

Py_Initialize();Py_Finalize();

6,添加可选的运行目录和脚本文件判断:

PyRun_SimpleString("import sys"); PyRun_SimpleString("sys.path.append('./Py/')");PyRun_SimpleString("import os"); PyRun_SimpleString("print os.path.exists('./Py/pyscript.py')");

7,在本例中,在$(ProjectDir)中,新建"Py"文件夹,并把"pyscript.py"放置在该文件夹内,"pyscript.py"的内容为:

def foo():    print 'do nothing ...'def main():    print 'main() haha ~~'

8,声明Python元素变量:

PyObject* pModule = NULL;PyObject* pFunc = NULL;

9,载入Python模块,也就是一个py文件:

pModule = PyImport_ImportModule("pyscript");

10,载入Python中的函数:

pFunc = PyObject_GetAttrString(pModule, "main");

11,调用Python中的函数 :

PyEval_CallObject(pFunc, NULL);

另外,还需要注意的是,最好做一些空指针判断,提高程序健壮性:

if(NULL == pModule){    printf("载入模块失败!\n");    return -1;}

 

 

转载于:https://www.cnblogs.com/zanzan101/p/3836455.html

你可能感兴趣的文章
无阻塞加载脚本
查看>>
走进缓存的世界(一) - 开篇
查看>>
install chrome in elementary os
查看>>
OpenGL程序链接时错误
查看>>
go语言教程哪里有?Go从入门到精通系列视频3.1 对称加密算法
查看>>
MSIL Tutorial
查看>>
URAL 1077 Travelling Tours(统计无向图中环的数目)
查看>>
跨域ajax请求访问的三种方式
查看>>
Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)
查看>>
之前整理的笔记-杂记
查看>>
Java IO: RandomAccessFile
查看>>
上下滑动隐藏显示导航栏
查看>>
python中字典内置方法
查看>>
大三下学期十七周总结
查看>>
JS实现页面字体繁简转换
查看>>
在请求完成后回调delegate的方法。然而回调时经常遇到这种情况:delegate已经被释放...
查看>>
WPF 学习之旅 HELLO WORLD篇
查看>>
EF简单的添加修改删除基本语法
查看>>
小程序自定义导航栏
查看>>
(转)inux Read系统调用
查看>>