DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  python

上一页 1 2 3 4 5 下一页

python
摘要:说明: 当我们的python程序的一些函数的后端实现为C++时(比如Pytorch, TensorFlow或tvm等)可以使用当前方法调试。有两种方式可以安装调试环境: 一. 搭建环境 有两种方式搭建环境,第一种是用apt安装dbg包,第二种方式是编译python源码。 1.1 安装python的d 阅读全文
posted @ 2023-01-30 17:49 DoubleLi 阅读(247) 评论(0) 推荐(0) 编辑

摘要:首先,所有python的函数都是用extern "C"定义的,因此对于C和C++,其使用是一样的。 c语言调用python必须要有的API(不管有没有多线程): PyRun_SimpleString //执行一段python代码 PyImport_Import //导入python模块 PyModu 阅读全文
posted @ 2023-01-30 17:41 DoubleLi 阅读(315) 评论(0) 推荐(0) 编辑

摘要:今天看了近一天关于多线程的应用中,如何安全调用python方面的资料,开始的时候看的简直头大如斗,被python语言的全局锁(Global Interpreter Lock)、线程状态(Thread State )等都有点绕晕了,后来经过各方面文章和帮助文档的相互参考,发现对于2.4/2.5版本,提 阅读全文
posted @ 2023-01-30 17:34 DoubleLi 阅读(365) 评论(0) 推荐(0) 编辑

摘要:为什么? 1、提升效率。 2、一开始代码是在python中用了多进程,后面发现c++调用的Python代码是无法开启多进程的。由于Python解释器有全局解释所GIL的原因,导致在同一时刻只能有一个线程拥有解释器,所以在C++多线程调用python脚本时,需要控制GIL,线程获取GIL。 c++如何 阅读全文
posted @ 2023-01-30 17:33 DoubleLi 阅读(321) 评论(0) 推荐(0) 编辑

摘要:1、背景 简单说一下需求,Qt开发的上位机界面程序,需要调用Python编写的算法跑一个结果返回到界面上显示。 2、度娘出一篇博客,按照步骤进行环境搭建和简单的代码测试 环境搭建请参照如下博客地址: 博客:① https://blog.csdn.net/cholenmine/article/deta 阅读全文
posted @ 2023-01-30 17:29 DoubleLi 阅读(401) 评论(0) 推荐(0) 编辑

摘要:脚本语言是快速编写富有弹性的代码的重要方法之一,在 Unix 系统自动化管理中已经应用了多种脚本语言。现在,在许多应用开发中,也提供了脚本层,这大大方便用户实现通用任务自动处理或者编写应用扩展,许多成功的应用,诸如 GIMP、Emacs、MS Office、PhotoShop、AutoCAD 等都应 阅读全文
posted @ 2023-01-30 17:26 DoubleLi 阅读(437) 评论(0) 推荐(0) 编辑

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

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

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

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

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

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

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

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

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

摘要:错误场景:一直等待全局锁。 解决方法: 一、首先定义一个封装类,主要是保证PyGILState_Ensure, PyGILState_Release配对使用,而且这个类是可以嵌套使用的。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <pyth 阅读全文
posted @ 2023-01-30 13:51 DoubleLi 阅读(52) 评论(0) 推荐(0) 编辑

摘要:方法一:使用python提供给C/C++的API 主流方法将python程序编程文本形式的动态链接库,在c/c++程序中调用其中定义的函数。 本质上是在 c++ 中启动了一个 python 解释器,由解释器对 python 相关的代码进行执行,执行完毕后释放资源,达到调用目的,具体步骤如下: 1. 阅读全文
posted @ 2023-01-29 17:59 DoubleLi 阅读(1021) 评论(0) 推荐(0) 编辑

摘要:python卡死了怎么办? 一般的python程序卡死,可以用pycharm debug。但是有时候是python和c/c++库混合开发,比如pyqt或者boost python程序卡死,就非常难查。以前都是二分法注释代码查找问题,异常低效。 于是我尝试了vs2017的新功能:python & c+ 阅读全文
posted @ 2023-01-29 16:07 DoubleLi 阅读(228) 评论(0) 推荐(0) 编辑

摘要:说明: 当我们的python程序的一些函数的后端实现为C++时(比如Pytorch, TensorFlow或tvm等)可以使用当前方法调试。有两种方式可以安装调试环境: 一. 搭建环境 有两种方式搭建环境,第一种是用apt安装dbg包,第二种方式是编译python源码。 1.1 安装python的d 阅读全文
posted @ 2023-01-29 16:00 DoubleLi 阅读(106) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 下一页
点击右上角即可分享
微信分享提示