当前位置: 首页 > news >正文

在C++项目中使用python脚本(四种)常见报错解决

上一期我们讲了如何在C++中使用python脚本,这期讲讲过程中常会遇到的一些错误。


一、c++代码未设置python路径


Py_SetPythonHome(L"D:\\anaconda3\\envs\\envpython3.7");这一句很重要,切记加上并且换成自己的路径

Py_SetPythonHome(L"D:\\anaconda3\\envs\\envpython3.7");/**这句语句是在添加python.exe所在路径**/Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化if (!Py_IsInitialized()){printf("初始化失败!");return 0;}else {PyRun_SimpleString("import sys");PyRun_SimpleString("sys.path.append('./')");//这一步很重要,设置.py文件的路径PyObject* pModule = NULL;//声明变量PyObject* pFunc = NULL;// 声明变量pModule = PyImport_ImportModule("hello");//这里是要调用的文件名hello.pyif (pModule == NULL){cout << "没找到该Python文件" << endl;}else {pFunc = PyObject_GetAttrString(pModule, "add");//这里是要调用的函数名PyObject* args = Py_BuildValue("(ii)", 28, 103);//给python函数参数赋值PyObject* pRet = PyObject_CallObject(pFunc, args);//调用函数int res = 0;PyArg_Parse(pRet, "i", &res);//转换返回类型cout << "res:" << res << endl;//输出结果}Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。}

二、.py文件位置不对


我们在代码中设置了PyRun_SimpleString("sys.path.append('./')");,这一步是将.py文件路径设置成了项目路径的当前目录下,所以我们不妨修改路径,或者将hello.py在项目的各个文件夹中多复制几份试试


三、设置成release


切记将构建类型换成release,如果是debug,会报找不到python_d.lib的错误


四、python的位数和visual studio的构建位数不对应


查看python位数,我的是64位,那么就需要检查Visual Studio中是不是用了X86(32位)构建的

依旧是右击项目,然后点击属性,然后点击配置管理器

改成x64平台

然后再在构建中选择Release和x64即可

 

http://www.lryc.cn/news/317993.html

相关文章:

  • 微前端框架 qiankun 配置使用【基于 vue/react脚手架创建项目 】
  • nodejs切换淘宝源
  • 怎么避免电脑数据被拷贝?电脑如何禁用USB功能?
  • 给电脑加硬件的办法 先找电脑支持的接口,再买相同接口的
  • uniapp微信小程序_自定义交费逻辑编写
  • 论文阅读——RingMo
  • Hadoop,Hive 数据预处理CR
  • 小程序开发——获取设备信息 API(三)
  • Vue2 + node.js项目
  • 如何使用IDE端通义灵码
  • 微服务分布式springcloud的体育场地预约系统演kdm1z
  • IDEA开启Run Dashboard
  • 小程序学习3 goods-card
  • 【投稿优惠-EI稳定检索】2024年图像处理与机械系统工程国际学术会议 (ICIPMSE 2024)
  • Linux系列
  • SQL笔记 -- 黑马程序员
  • C# MES通信从入门到精通(1)——串口传输文件
  • 论文阅读-federated unlearning via class-discriminative pruning
  • 研发效能DevOps: OpenEuler 部署 drone 持续集成平台
  • C#,图论与图算法,图着色问题(Graph Coloring)的威尔士-鲍威尔(Welch Powell Algorithm)算法与源代码
  • 用python写一个脚本,实现加速3X并压缩mp4视频以降低文件大小。
  • Flink广播流 BroadcastStream
  • IP数据报格式
  • GET https://registry.npm.taobao.org/xxxx error (CERT_HAS_EXPIRED)解决
  • SSM Java Web项目由于spring-mvc.xml配置不对带来的一系列问题
  • MySQL事务隔离
  • Java基础知识总结(1)
  • 脚手架原理之webpack处理html文件和模块打包
  • Winform编程详解一:Form窗口
  • Windows Server 2025 Install Preview