DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 474 下一页

2023年1月30日

摘要: 由于Python解释器有全局解释所GIL的原因,导致在同一时刻只能有一个线程拥有解释器,所以在C++多线程调用python脚本时,需要控制GIL,线程获取GIL。 在主线程中初始化Python解释器环境,代码如下: { Py_Initialize(); //初始化Python环境 if ( !Py_ 阅读全文
posted @ 2023-01-30 17:20 DoubleLi 阅读(1152) 评论(0) 推荐(0)

摘要: 项目需要C++调用python的算法,由于python算法比较耗时,因此采用在C++里启动working thread来调用python脚本,python代码里含有cv2.imread()等opencv的调用,在子线程里调用会卡死。 解决办法: //1,主线程初始化python时,需要使能多线程:P 阅读全文
posted @ 2023-01-30 17:15 DoubleLi 阅读(220) 评论(0) 推荐(0)

摘要: 最近都很忙,忙着把公司的Python回测框架完成。前两天公司同事抱怨 C/C++调用Python超级烦人,动不动就返回NULL,而且内存暴涨,于是我决定尝试解决这个问题,提供一套完整的开发流程,供大家技术分享。要完成C/C++调用Python最好是熟悉C/C++和Python,否则出了问题就比较难解 阅读全文
posted @ 2023-01-30 17:13 DoubleLi 阅读(2345) 评论(0) 推荐(0)

摘要: python unicode字符编解码问题参见【Python笔记2.1】 python中用zipfile解压zip包网上资料一堆,这里就不多说了。 下面使用【Python笔记2.1】中总结出来的字符编解码函数来解决zipfile解压zip包的问题。时间仓促,直接上代码。 完整示例代码(含【Pytho 阅读全文
posted @ 2023-01-30 17:05 DoubleLi 阅读(163) 评论(0) 推荐(0)

摘要: 以下部分参考[1],这里复制了其中一部分是为了防止原文被移动或删除。 概述 Python 中有字符串类型(str)和字节类型(byte),以及 Python 编码中最常见也是最顽固的两个错误: UnicodeEncodeError: 'ascii' codec can't encode charac 阅读全文
posted @ 2023-01-30 17:04 DoubleLi 阅读(568) 评论(0) 推荐(0)

摘要: 概述 在上一篇笔记中讲述了C/C++多线程调用Python类,但是如果Python提供的接口不是class封装的情况该怎么办呢,此时如何保证在C/C++多线程调用Python代码时能够正常运行呢? 在多线程开发中,尽量避免使用全局变量,我们可以将Python中需要全局初始化的变量放到一个字典(或元祖 阅读全文
posted @ 2023-01-30 17:03 DoubleLi 阅读(147) 评论(0) 推荐(0)

摘要: 概述 在多线程开发中,往往会涉及很多handle、对象等变量的存储,这时候对于Python代码,我们可以采用面向对象编程。下面主要讲述C/C++如何调用Python类。 先看一段Python代码 student.py class Person: def __init__(self): self.in 阅读全文
posted @ 2023-01-30 16:58 DoubleLi 阅读(302) 评论(0) 推荐(0)

摘要: C/C++调Python时,由于Python解释器有GIL(Global Interpreter Lock)的原因,导致在同一时刻只能有一个线程拥有GIL,我们可以将其简单理解为全局锁。所以在C/C++多线程调用Python时需要先获取GIL。 C/C++多线程调Python #include <s 阅读全文
posted @ 2023-01-30 16:52 DoubleLi 阅读(271) 评论(0) 推荐(0)

摘要: 随着机器学习/深度学习这几年的的火热,python成了当红炸子鸡,使用python训练机器学习模型则成了开发人员们最喜欢的方法,但是由于过往调度系统一般都是用C++来开发的,因此我们只有两种方法来调用python脚本,一种是使用上篇中提到的子进程的方法,另外一种则是直接使用C++/python进行混 阅读全文
posted @ 2023-01-30 14:00 DoubleLi 阅读(207) 评论(0) 推荐(0)

摘要: 最近在做C++调Python的work,简单总结下 (一) 初始化和关闭Python解释器 #include<Python.h> Py_Initialize(); … Py_Finalize(); 所有的Python程序都要在这之间执行 (二) load Python模块 又分为以下两种方式 (1) 阅读全文
posted @ 2023-01-30 13:57 DoubleLi 阅读(579) 评论(0) 推荐(0)

上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 474 下一页