您的位置:首页 > 编程语言 > C语言/C++

关于使用vs在c++是搭载python遇到的坑(把爬虫挂在c++上面)

2020-07-15 04:36 447 查看

最近在用qt写一个音乐播放器,由于播放器需要获取网上音乐,所有我搭载了一个python的音乐爬虫,在c++上面跑python怎么配置环境网上一大堆博客讲了很清晰。下面我来说说我遇见的坑。

1、中文问题

在vs上面编码是unicode编码,而python上面的编码为utf-8,两种不同格式的编码,假如不解决编码问题,c++传中文给python会直接出现异常,python传中文给c++也会出现异常了。在c++中加入一行代码#pragma execution_character_set("utf-8")这个表示你的c++的编码格式为utf-8,现在两方能互传中文了。但是utf-8编码的中文在vs上面显示是乱码形式的,由于我是在qt上面搭载,qt用的也是utf-8编码,所有我无需改变编码了,qt上面不乱码就行。这里如果大家想要在vs上面也显示正常,给大家一个方向去Google一下utf-8编码转换为Unicode编码,代码很少的,就是字节的转换。

2、关于qt和python的宏冲突问题

当你在qt里面加入#include<Python.h>头文件,里面定义的宏跟qt的宏会产生冲突,解决方法,加入下面一段就可以了

[code]#pragma push_macro("slots")
#undef slots
#include<Python.h>
#pragma pop_macro("slots")

宏定义冲突报错为   C2143    语法错误: 缺少“;”(在“*”的前面)  

3、c++传参给python

这里面(ss)是指把a,b打包成一个元组,然后传过去

4、关于第三方库问题报错

在代码中加行python路径就行了

[code]Py_SetPythonHome(L"C:\\Users\\浩南\\AppData\\Local\\Programs\\Python\\Python37");

暂时先更新这些问题,遇到问题后再更新,需要代码的可以下方留言,我就更新到github,毕竟还有一些小细节没有处理好,想再完美点

附一张,搜索付费音乐的截图(界面和素材都是借鉴的别人的)

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: