在很多时候,我们需要在一个c++工程项目中调用部分Python代码,这就需要我们实现Python和C++之间的交互。交互方式有两种:1. 依靠 TCP 建立的网络通信交互;2. 嵌入式混合语言编程(Embedding Code)。这里主要介绍后者,如何在CLion下使用C++调用Python模块。

(一)环境搭建

安装CLion并配置好编译环境(下载地址:https://www.jetbrains.com/clion/),下载并安装好Python环境。
在CLion中新建一个C++项目,我们要做的就是修改 CMakeList 文件中的内容:

添加下面两行:

# 添加 Python 的 include 目录,找到自己装 python 的目录,Python 默认安装路径在:“C:\Users\你自己的用户名\AppData\Local\Programs\Python”
include_directories(C:\\Users\\eve\\AppData\\Local\\Programs\\Python\\Python37\\include)# 添加 Python 的 lib 库,同样找到 python 安装目录下的 libs 文件夹中的 python37.lib 文件
link_libraries(C:/Users/eve/AppData/Local/Programs/Python/Python37/libs/python37.lib)

添加完成之后我们 CmakeList 就写好了,接下来我们测试一下代码,记得引入 “Python.h”:

运行代码后发现报错:

如果你遇到了同样的错误,不要着急,我们只需要修改 Python.h 中一小点代码就可以了,我们打开 Python.h 源码(在 “Python 安装目录 / include” 文件夹中),打开后我们在最开头添加一个引用:

#include "math.h"


保存后,再重新运行代码,发现可以正常运行了:

如何在Clion中使用C++调用Python代码相关推荐

  1. windows调用python_如何在Windows操作系统中从R调用Python?

    我正在寻找一种在Windows操作系统上调用R中的python的方法.因为似乎没有可用的R包(至少没有最近更新的包),我正在寻找如何在R脚本中编写一组命令的线索,然后可以以批处理模式发送蟒蛇. 简而言 ...

  2. C++ 调用 Python 代码 - Clion QT混合编程 ,各取长处。

    Qt 自带编辑器 调用Python  Clion 编辑器    调用Python 前言:python 无所不能.代码简洁,易于维护,开发效率很快.就是运行速度太慢. C++速度快,但是开发繁琐,没有p ...

  3. xlwings : 从此可以 VBA 调用 Python 代码啦

    Python 的库总是异常丰富,比如 Python 操作 Excel ,根据 详解Python操作Excel文件 这篇文章的介绍,竟然达到了 9 种之多,文章的列举还不一定是穷举式的.这么多库,也没必 ...

  4. c调用python脚本如何获取结果_使用C++调用Python代码的方法详解

    一.配置python环境问题 1.首先安装Python(版本无所谓),安装的时候选的添加python路径到环境变量中 安装之后的文件夹如下所示: 2.在VS中配置环境和库 右击项目->属性-&g ...

  5. java调用python代码

    同样的我们需要安装jython,具体的步骤如下: 1. 去 http://sourceforge.net/projects/jython/ 下载最新的jython相关的jar包. 2. 下载下来的ja ...

  6. java代码调用python_java调用python代码-阿里云开发者社区

    同样的我们需要安装jython,具体的步骤如下: 2. 下载下来的jar包其实既是使用的时候需要引入的jar包,也是安装就jython的jar包.具体安装细节参照:https://wiki.pytho ...

  7. Qt Creator与Qt+VS2015调用Python代码的实现

    下面来介绍分别用Qt Creator与Qt+VS2015调用Python代码,首先电脑中要安装Python IDE与Qt.我电脑中安装的是Python37,VS2015+Qt5.8.Qt Creato ...

  8. JavaScript调用Python代码

    JavaScript 可以使用 Node.js 的 child_process 模块来调用 Python 代码. 例如,你可以使用 child_process.spawn 方法来调用 Python 脚 ...

  9. OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式...

    OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式 以最简单的4 x 5三通道图像为例,其在内存中Mat类型的数据组织形式如下: 每一行的每一列 ...

最新文章

  1. linux 命令详解 二十七
  2. SpringBoot 实战 (八) | 使用 Spring Data JPA 访问 Mysql 数据库
  3. unity fixedupdate_unity相关
  4. java 树 右键菜单_VUE实现Studio管理后台(八):用右键菜单contextmenu,编辑树形结构...
  5. Python爬虫之旅_高性能异步爬虫
  6. linux 烧写(1)
  7. 【源码】斗地主人机对战程序算法2012完整版
  8. c语言排序算法_C语言写排序算法(二) —— 选择排序
  9. JSONP原理及使用
  10. CAD二次开发--->批量快速创建对齐标注插件
  11. QT实现FTP下载文件功能
  12. 笔记本连接android手机屏幕,实现手机、电脑屏幕共享的7个步骤
  13. 数据库perl脚本:创建SDB各表,并导入数据
  14. html怎么做出相框的效果,使用html5 svg和css3制作边框运动的动画效果
  15. 通过python各种开源库,开发一个适合大部分公司测试项目框架,确定名字AutoTestProjects
  16. Calendar类获取当前时间上一个月,下一个月,当月的最后一天等的处理方法
  17. InetAddress类常用方法
  18. position absolute 与 relative 区别
  19. 微信和支付宝对我们生活产生翻天覆地的改变
  20. App性能测试Case

热门文章

  1. ocelot 中间件的变化
  2. 重学ASP.NET Core 中的标记帮助程序
  3. 如何给Blazor.Server加个API鉴权?
  4. Source Generator:C# 9 将迎来编译时元编程
  5. Asp.Net Core 已支持 gRPC-Web !!
  6. XRPC接口双向调用
  7. 程序员过关斩将--要想获取我的用户信息,就得按照规矩来
  8. netcore开发windows普通服务(非Web)并一键发布到服务器
  9. 终于明白了 C# 中 Task.Yield 的用途
  10. .NET Core Community 首个千星项目诞生:CAP