python在C++工程中的嵌入

因为题主本身是做视频编码方向的,所以需要运用到视频编码和机器学习等方面的内容。因此,就对这一方面进行了学习和总结归纳。

众所周知,对于大型的工程文件,不是C++就是java,而视频编码的标准测试软件平台就是以C语言为基础进行编写的。因此要想对视频编码有所研究的话,就必须对C语言有所了解。同时,另一方面,对于绝大多数计算机相关方向的研究生或者老师来说,机器学习、深度学习、强化学习、神经网络都是或轻或重的工具,而python作为神经网络的首选语言,我们也需要多加了解才行。

        言归正传,我就简单描述一下python在C++工程项目中的嵌入,首先放置嵌入成功后的界面:

这就是嵌入成功后的主体表现,就和python一样,导入了一个库,然后按照规则使用即可,如果图中的函数不适用于你的使用情况,那就点击跳转到源代码处寻找自己想要的函数即可。

下面则是配置的具体情况,以VS2017作为示例:

1、找到你的项目文件,右键鼠标,打开属性这一界面。

 2、点击左侧的V/C++目录,进行嵌入的配置。

点击包含目录,新增,然后将<python安装目录>+'\include'复制进去即可;

点击库目录,新增,将<python安装目录>+'\libs'复制进去即可。

 基于以上操作,就可以实现python在C++工程中的应用了。

注意点:
1、你使用到哪一个项目就必须对哪一个项目进行配置,在大型工程文件中,不同项目文件有时候会跳转,需要注意。

2、在配置好后,可能会出现debug模式下的错误,那就需要将前面库目录里文件名为python38.lib(根据版本不同可能有所不同)复制并重命名为python_d.lib即可。

 3、在导入模块时,有的时候会报内存占用的错误,可能是由于python文件本身存在错误,比如py文件导入了不存在的库,语法错误等等,需要检查你导入的模块能否正常运行(如果电脑里存在两种不同版本的python,要配置安装了对应库的python路径,否则会造成py文件能正常执行,但依旧报内存占用的问题)。

ps:在很多情况下,单单导入了python是不足以使用的,常见的还有opencv和numpy,配置方法和上面相同,就是配置的地方有所区别。

4、

   Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化

   Py_Finalize();//调用Py_Finalize,这个和Py_Initialize相对应。

这两个代码在整个过程中只需要各运行一次,请把它们放在程序的开始和结束处,不要重复调 

Opencv

  配置包含目录:  <安装路径>\opencv3\build\include

  配置库目录:   <安装路径>\opencv3\build\x64\vc15\lib

  配置链接器输入:opencv_world341.lib341为对应版本号)

Numpy

  配置附加包含目录:

  <安装路径>\Python36\Lib\site-packages\numpy\core\include

numpy的配置注意点:

需要修改<安装路径>\python36\include\pyconfig.h,要不然会在Debug模式下报错。

将:

 

 修改为

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值