vscode c++调用python

本文主要记录学习vscode c++调用python中所遇到的一些问题,以作记录,备忘,里面也包含一些visual studio配置调用python的文章。

vscode下载及使用教程

参考
整理:Visual Studio Code (vscode) 配置C、C++环境/编写运行C、C++(主要Windows、简要Linux)

vscode官网gcc linux的hello word教程
VsCode使用教程

vscode官网很多教程以及相关信息的说明文档,有需要可以自行去查看
https://code.visualstudio.com/docs

vscode中c++调用python

环境配置:
在vscode中cpp中
#include <Python.h>头文件
一般来说是找不到头文件的,既是在c_cpp_properties.json中添加includepath也一般找不到,所以最好的方式是
#include <绝对路径/Python.h>

仅仅include Python.h是不够的,还需要链接库

在Linux下,只需要在task.json中的arg参数中添加-lpython3.7m
在这里插入图片描述

其他环境的配置参考
在VS2019和VScode中配置C++调用python接口
makefile如何调用静态库
vscode里面如何配置库_VSCode中C/C++库文件的配置

VSCODE链接库
Vscode 使用 C++ 调用python
VS Code配置链接库文件

上述文章中也有在visual studio中配置python的文章,需要注意的是visual studio只用win和mac版,并没有linux版,而vscode有三者的版本。
所以,在visual studio的win环境下教你链接python库时,使让你找python37.lib的
但是在linux环境下,python是没有叫python37.lib的东西的,它只有libpython3.7m.so,而且我们也不需要用到这个库干什么,我们只需要在编译时加一句-lpython3.7m
(不要像我一样在Linux上找了半天的python37.lib)
顺便说一说如何在Linux上查找文件
Linux下文件搜索、查找、查看命令

而有关如何使用c++调用python
参考
python官方文档
c++调用python的代码、函数、类
C++调用python的那些坑(详细教程步骤)
C++调用python程序环境搭建
C++调用Python总结
C++ —— 调用Python3函数与类对象
VSCode使用过程中遇到的一些坑

关于python c api的一些重要的问题
什么都不了解的时候参考上述一些文章直接调用文章上的python c api可能会出现一些问题,比如填写了参数,但是返回了NULL
其实主要是参数或者函数的问题

看了一篇文章说到:“将C类型转换为Python类型一般使用Py_BuildValue,相反,将Python类型转换为C类型一般使用PyArg_Parse,PyArg_ParseTuple和PyArg_ParseTupleAndKeywords,”
参考文献:C/C++调用Python [OpenCV与Numpy]
恍然大悟
然后自己去python官方说明文档中查看python c api的函数具体信息。

在这里插入图片描述
两个差不多的接口,可以看出,一个输入的参数为c类型的参数,而另一个则是需要输入python类型的参数(PyObject)
callmethod函数同理

参考
PyObject_CallMethod
PyObject_CallMethod

一些使用vscode中遇到的bug

下面展示一些 内联代码片
bug1

launch: program '*****\.vscode\launch.exe' does not exist

出现这个问题的原因是误把launch.json当成C++编译了,VSCode貌似默认编译的是当前活动标签,只需把活动标签切到目标CPP即可。

c++ python numpy

参考:
记录numpy和c++的混合编程
c++调用python函数时,使用PyArray_SimpleNewFromData(nd, dims, typenum, data)函数时出现内存错误的问题…
C/C++调用Python [OpenCV与Numpy]

使用这样的方式调用python的第三方库时,通常有可能会存在问题或使用不了,我也不知道怎么解决。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值