一、环境设置

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代码相关推荐

  1. java怎么调用python_如何在Java中调用Python代码

    Jython(原JPython),是一个用2113Java语言写的Python解释5261器.在没有第三方模块的情况下4102,通常选择利用Jython来调用1653Python代码,它是一个开源的J ...

  2. excel调用python编程-如何在excel中调用python脚本

    如何在excel中调用python脚本 发布时间:2020-07-03 14:15:28 来源:亿速云 阅读:155 如何在excel中调用python脚本?针对这个问题,这篇文章详细介绍了相对应的分 ...

  3. fortran语言和python_如何在Fortran中调用Python

    Python是机器学习领域不断增长的通用语言.拥有一些非常棒的工具包,比如scikit-learn,tensorflow和pytorch.气候模式通常是使用Fortran实现的.那么我们应该将基于Py ...

  4. Halcon初学者知识 【13】如何在MFC中调用Halcon代码

    要知道如何在MFC中调用Halcon代码,需要以下知识点: 在VC++2019的工程中,配置Halcon环境[请看此文] Halcon代码如何导出成C++代码 如何拆解halcon转换成C++的代码, ...

  5. php中如何调用javascript,如何在php中调用javascript代码?

    JavaScript是客户端脚本语言,PHP是用于与数据库交互的服务器端脚本语言.那么如何在php中调用javascript代码?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下 ...

  6. php中调用代码,如何在php中调用javascript代码?

    JavaScript是客户端脚本语言,PHP是用于与数据库交互的服务器端脚本语言.那么如何在php中调用javascript代码?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下 ...

  7. 如何在C++中调用python程序?

    文章目录 1. Embedding Python in Another Application 将Python嵌入另一个应用程序中 1.1. Very High Level Embedding 高层嵌 ...

  8. 【Python】如何在Excel中调用Python脚本,实现数据自动化处理

    这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作. 说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5 ...

  9. m 文件 dll matlab 中调用_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

  10. php调用python绘图程序_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

最新文章

  1. 最新!百度首发 OCR 自训练平台 EasyDL OCR
  2. JDK,JRE和JVM三者的关系以及java的运行机制,环境变量,三大版本,特点
  3. 深井软岩巷道群支护技术与应用_引领支护创新,促进行业发展
  4. 全网最简单明了的MySQL连接Eclipse方法(JDBC详细安装方式及简单操作)2020新版
  5. Ubuntu系统下Python虚拟环境构建详解
  6. dwc_otg驱动 BUG: sleeping function called from invalid context at mm/page_alloc.c
  7. python镜像_Python二叉树的镜像转换实现方法示例
  8. 2019 世界读书日,让程序员疯狂的 13 本豆瓣高分技术书!
  9. 【KDD20】图神经网络在生物医药领域的应用
  10. 世界上最好用的截图工具 吸色工具 Snipaste
  11. QCC3020呼吸灯设计
  12. python群控模拟安卓系统_安卓群控系统模拟器
  13. sql注入之——sql注入防御方法
  14. 图片裁剪cropper 示例
  15. docker 配置远程deamon
  16. UG二次开发GRIP总结简明教程
  17. 3. pandas基础
  18. opencv 数学形态学(2) 膨胀运算:dilate
  19. java爬虫写一个百度图片下载器
  20. 如何在控制台创建文件夹

热门文章

  1. 协方差局长你_关于Eviews,你必须知道的20个精彩问答
  2. Hibernate一级缓存和二级缓存详解
  3. python中每个if条件后面都要使用冒号_每个if条件后面都要使用冒号
  4. 通过本地上传工具把CSV文件导入到百会报表
  5. 路由器温度测试软件,[折腾] 夏天别热晕了!自制光猫/路由器散热支架(更新温度测试)...
  6. 锐捷无线ap服务器怎么绑定mac,MacBook中的锐捷设置全攻略
  7. 批量添加手机联系人 | csv/excel转vcf
  8. dw向右滚动字幕HTML,DW滚动文字代码肿么添加?
  9. 雅虎34条军规(网页优化)
  10. 计算机报名照片在线修图,详细!2020国家公务员考试报名确认专题照片处理工具使用教程...