如何在C++中调用python代码
一、环境设置
windows
VS2015
python的话用的是acaconda自带的python环境,不同版本的acaconda自带的python不同,我的是python3.6(这一步很重要,如果使用acaconda创建的虚拟环境的python,可能会不成功)
二、VS项目中设置
(1)首先在acaconda中找到include文件夹和libs文件夹,如图所示
然后右击C++项目,选择属性,点击VC++目录,然后在包含目录中添加include文件夹,在库目录中添加libs文件夹
(2)点击链接器,然后输入,附加依赖项,添加python36_d.lib的路径
因为配置为Debug,所以是添加python36_d.lib,而不是python36.lib。如果没有这个文件,直接复制python36.lib,然后命名为python36_d.lib即可。如图所示
(3)python代码
想要在C++代码中调用python中的vsdemo.py的max函数,首先python代码如图所示
def max(a,b):if a>b:return aelse:return b
C++代码如图所示
#include <iostream>
#include<python.h>
#include"stdio.h"
using namespace std;
int main()
{Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化if (!Py_IsInitialized()){printf("初始化失败!");return 0;}PyRun_SimpleString("import sys");PyRun_SimpleString("sys.path.append('./')");//这一步很重要,修改Python路径PyObject* pModule = NULL;//声明变量PyObject* pFunc = NULL;// 声明变量pModule = PyImport_ImportModule("vsdemo");//这里是要调用的文件名vsdemo.pyif (pModule == NULL){cout << "没找到" << endl;}pFunc = PyObject_GetAttrString(pModule, "max");//这里是要调用的函数名maxPyObject* pParams = Py_BuildValue("(ss)", "3", "4");//两个字符串参数char* result;PyObject* pRet = PyObject_CallObject(pFunc, pParams);//调用函数 pRet是得到的结果int res = 0;PyArg_Parse(pRet, "s", &result);//转换结果的返回类型cout << "res:" << result << endl;//输出结果system("pause");Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。return 0;}
,同时需要把python代码,即vsdemo.py文件,放到c++项目文件中,然后再运行
三、可能会出现的问题
(1)可能会出现找不到python36.dll的错误,可以从acaconda中找到该文件,复制到c++项目文件中即可,如图所示
如何在C++中调用python代码相关推荐
- java怎么调用python_如何在Java中调用Python代码
Jython(原JPython),是一个用2113Java语言写的Python解释5261器.在没有第三方模块的情况下4102,通常选择利用Jython来调用1653Python代码,它是一个开源的J ...
- excel调用python编程-如何在excel中调用python脚本
如何在excel中调用python脚本 发布时间:2020-07-03 14:15:28 来源:亿速云 阅读:155 如何在excel中调用python脚本?针对这个问题,这篇文章详细介绍了相对应的分 ...
- fortran语言和python_如何在Fortran中调用Python
Python是机器学习领域不断增长的通用语言.拥有一些非常棒的工具包,比如scikit-learn,tensorflow和pytorch.气候模式通常是使用Fortran实现的.那么我们应该将基于Py ...
- Halcon初学者知识 【13】如何在MFC中调用Halcon代码
要知道如何在MFC中调用Halcon代码,需要以下知识点: 在VC++2019的工程中,配置Halcon环境[请看此文] Halcon代码如何导出成C++代码 如何拆解halcon转换成C++的代码, ...
- php中如何调用javascript,如何在php中调用javascript代码?
JavaScript是客户端脚本语言,PHP是用于与数据库交互的服务器端脚本语言.那么如何在php中调用javascript代码?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下 ...
- php中调用代码,如何在php中调用javascript代码?
JavaScript是客户端脚本语言,PHP是用于与数据库交互的服务器端脚本语言.那么如何在php中调用javascript代码?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下 ...
- 如何在C++中调用python程序?
文章目录 1. Embedding Python in Another Application 将Python嵌入另一个应用程序中 1.1. Very High Level Embedding 高层嵌 ...
- 【Python】如何在Excel中调用Python脚本,实现数据自动化处理
这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作. 说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5 ...
- m 文件 dll matlab 中调用_如何在matlab中调用python程序
现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...
- php调用python绘图程序_如何在matlab中调用python程序
现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...
最新文章
- 最新!百度首发 OCR 自训练平台 EasyDL OCR
- JDK,JRE和JVM三者的关系以及java的运行机制,环境变量,三大版本,特点
- 深井软岩巷道群支护技术与应用_引领支护创新,促进行业发展
- 全网最简单明了的MySQL连接Eclipse方法(JDBC详细安装方式及简单操作)2020新版
- Ubuntu系统下Python虚拟环境构建详解
- dwc_otg驱动 BUG: sleeping function called from invalid context at mm/page_alloc.c
- python镜像_Python二叉树的镜像转换实现方法示例
- 2019 世界读书日,让程序员疯狂的 13 本豆瓣高分技术书!
- 【KDD20】图神经网络在生物医药领域的应用
- 世界上最好用的截图工具 吸色工具 Snipaste
- QCC3020呼吸灯设计
- python群控模拟安卓系统_安卓群控系统模拟器
- sql注入之——sql注入防御方法
- 图片裁剪cropper 示例
- docker 配置远程deamon
- UG二次开发GRIP总结简明教程
- 3. pandas基础
- opencv 数学形态学(2) 膨胀运算:dilate
- java爬虫写一个百度图片下载器
- 如何在控制台创建文件夹
热门文章
- 协方差局长你_关于Eviews,你必须知道的20个精彩问答
- Hibernate一级缓存和二级缓存详解
- python中每个if条件后面都要使用冒号_每个if条件后面都要使用冒号
- 通过本地上传工具把CSV文件导入到百会报表
- 路由器温度测试软件,[折腾] 夏天别热晕了!自制光猫/路由器散热支架(更新温度测试)...
- 锐捷无线ap服务器怎么绑定mac,MacBook中的锐捷设置全攻略
- 批量添加手机联系人 | csv/excel转vcf
- dw向右滚动字幕HTML,DW滚动文字代码肿么添加?
- 雅虎34条军规(网页优化)
- 计算机报名照片在线修图,详细!2020国家公务员考试报名确认专题照片处理工具使用教程...