python嵌入到C++中
python嵌入到C++中
把python嵌入的C++里面需要做一些步骤
- 安装python程序,这样才能使用python的头文件和库
- 在我们写的源文件中增加“Python.h”头文件,并且链入“python**.lib”库(还没搞清楚这个库时静态库还是导出库,需要搞清楚)
- 掌握和了解一些python的C语言api,以便在我们的c++程序中使用
常用的一些C API函数
在了解下面的函数之前有必要了解一下**PyObject***指针,python里面几乎所有的对象都是使用这个指针来指示的。
Py_Initialize()&&Py_Finalize()
在调用任何python的c函数之前需要调用的函数,“Py_Initialize”是用来初始化python模块的,推测是加载初始化加载dll的。对应的在使用python模块之后用“Py_Finalize”来释放模块。
PyImport_ImportModule()
用来载入一个python模块,这个模块就是一般的python文件。这里需要注意的是,在加载这个模块的时候会执行模块里面所有可以执行的语句。包括import导入语句和在函数体之外的所有语句
PyObject_GetAttrString()
返回模块里面的函数
Py_BuildValue()
建立一个参数元组,一般都是用这个函数来建立元组,然后将这个元组作为参数传递给python里面的函数。
PyEval_CallObject()
调用函数,并把“Py_BuildValue”建立的元组作为参数传递给被调用的函数
源码实例
下面的实例是在c++代码中调用Python的函数,传递参数并且获取返回值
test.cpp代码
#include <iostream>
#include <Python.h>
using namespace std;int main(int argc, char* argv[])
{Py_Initialize(); //初始化PyObject* pModule = NULL;PyObject* pFunc = NULL;PyObject* pParam = NULL;PyObject* pResult = NULL;const char* pBuffer = NULL;int iBufferSize = 0;pModule = PyImport_ImportModule(“test_python");if (!pModule){cout << "get module failed!" << endl;exit (0);}pFunc = PyObject_GetAttrString(pModule, "main");if (!pFunc){cout << "get func failed!" << endl;cout << int(pFunc) << endl;exit (0);}pParam = Py_BuildValue("(s)", "HEHEHE");pResult = PyEval_CallObject(pFunc,pParam);if(pResult){if(PyArg_Parse(pResult, "(si)", &pBuffer, iBufferSize)){cout << pBuffer << endl;cout << iBufferSize << endl;}}Py_DECREF(pParam);Py_DECREF(pFunc);Py_Finalize();//cout << "hello" << endl;return 0;
}
test_python.py代码
def main(szString):return ("hello", 5)
python嵌入到C++中相关推荐
- python嵌入html_Python odoo中嵌入html简单的分页功能
在odoo中,通过iframe嵌入 html,页面数据则通过controllers获取,使用jinja2模板传值渲染 html页面分页内容,这里写了判断逻辑 首页 {% if current_page ...
- python播放音乐同步歌词_使用Python下载歌词并嵌入歌曲文件中的实现代码
使用python扫描本地音乐并下载歌词 这次这个真的是干货哦,昨晚弄了半晚上,,,,从8点吃完饭就开始写,一直到了快12点才弄好,,,新手,伤不起呀.... 先简单的说下吧,百度提供了一个音乐搜索的a ...
- python爬网络图片脚步_关于python:如何从本地计算机或网络资源将图像或图片嵌入jupyter笔记本中?...
我想将图像包括在Jupyter笔记本中. 如果执行以下操作,则可以正常工作: from IPython.display import Image Image("img/picture.png ...
- python嵌入到程序_在应用中嵌入Python:转
前面的章节讨论如何扩展Python,如何生成适合的C库等.不过还有另一种情况:通过将Python嵌入C/C++应用以扩展程序的功能.Python嵌入实现了一些使用Python更合适的功能.这可以有很多 ...
- python在会计工作中的应用-python有什么用(会计专业)
python有什么用 python作为一门高档编程言语,它bai的诞生尽管du很偶尔,但是它得到zhi程序员的喜欢却是必然之dao路,Python入门简略,比较于其他言语,初学者很容易入门,除此之外, ...
- python嵌入c代码_怎样把Python代码嵌入到C程序
匿名用户 1级 2017-11-03 回答 这篇文章主要介绍了将Python代码嵌入C++程序进行编写的实例,尽管通常还是Python代码中调用C++程序的情况较多...需要的朋友可以参考下 把pyt ...
- python嵌入shell代码_大家一起学python-Python基础1
本节内容 Python简介 Python的发展史 选择Python 2 还是python 3? Python安装 第一个Python程序 Python变量 学习怎么输入 数据类型 数据运算基础 表达式 ...
- UBUNTU16.04使用CornerNet_Lite进行目标识别并嵌入到ROS中
运行环境说明: 1)Python 3.7 2)PyTorch 1.0.0 3)CUDA 10 4)GCC 4.9.2 or above 本机测试环境说明: torch1.4+10.0+Python3. ...
- python在大数据分析中的应用
每个人都喜欢Python,如果您打算开始从事数据科学事业,我们可以肯定Python在您心中已经占有特殊的位置.它直观且易于在任何平台上运行,并且具有大量令人惊叹的库和工具.与其他编程语言相比,Pyth ...
最新文章
- 065_const关键字
- XHProf报告字段含义
- java读取codetable_解析Java对象的equals()和hashCode()的使用
- mysql 将时间戳_mysql 将时间戳直接转换成日期时间
- java代码实际_Java 8会给你的代码带来什么:一个实际的例子
- 【转载】qsort 与 bsearch 的魔力
- 用户名、密码都有值激活提交按钮
- gps信号用什么软件测试,gps信号检测软件
- 小米平板2wifi驱动下载_小米WiFi驱动官方下载_Xiaomi小米随身WiFi驱动官方最新版下载-华军软件园...
- 如何下载 MMS开头的视频资源
- 简单漂亮的流程图模板分享
- 我是如何出版一本书的?(2)
- 系统学习机器学习之cox模型
- Router-view
- Unable to obtain current patch information due to error: 20001, ORA-20001: Latest xml inventory is n
- android手机密码怎样删掉,手机密码忘了怎么解锁 删除密码解锁教程
- IDEA运行web项目路径中去掉项目名称
- 上传本地仓库到github远程仓库
- 人机交互新时代:多维度快速看清ChatGPT(附下载)
- excel查找出不来了_Excel查找值不唯一,一个VLOOKUP公式拖拉出多个结果啦
热门文章
- chrome上很棒的爬虫插件,至少爬取博客够用了
- 不要在脱离这个市场的情况下讨论商业模式
- C++如何限制对象在堆上或栈上生成
- 【小松教你手游开发】【面试必读(编程基础)】堆和栈的区别(转过无数次的文章)...
- Linux电源管理(5)_Hibernate和Sleep功能介绍【转】
- 【APUE】Chapter17 Advanced IPC sign extension 结构体内存对齐
- LINUX性能调优方法总结
- ACL在路由器上设置例子
- hdu 2059(dp)
- zoj-What day is that day?