嵌入式python
文章平均质量分 70
long_embed
这个作者很懒,什么都没留下…
展开
-
C & python联合编程-解决PyGILState_Ensure死锁问题
GIL锁机制GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。保护不同的数据的安全,就应该加不同的锁。 每执行一个python程序,就是开启一个进程,在一个python的进程内,不仅有其主线程或者由该主线程开启的其他线程,还有解释器开启的垃圾回收等解释器级别的线程,所有的线程都运行在这一个进程内,所以:1、所有数据都是共享的,这其中,代码作为一种数据也是被所有线程共享的(test.py的所有代码以.原创 2022-11-27 11:25:06 · 1122 阅读 · 0 评论 -
嵌入式python的裁剪
CPython的裁剪为什么要裁剪1.在嵌入式python移植时,空间资源有限,而python在编译时,会自动编译一些扩展库2.这些扩展库中,有一些是我们用不到的,所以就需要裁剪掉一部分库3.未裁剪之前的python库文件大概占用127M空间,其中包含so库和python文件动态链接库 ,也就是 lib-dynload这个文件夹大概占用8.9m,其余为python相关的库文件目标1.在满足功能的情况下,让Python尽可能的小。2.可选择功能进行裁剪。3.用户体验好,不能让用户修改源码或者Make原创 2021-09-01 14:34:27 · 428 阅读 · 0 评论 -
C扩展python接口\C回调调用python接口
C扩展库编写python接口接口介绍:tuple解析函数[PyArg_ParseTuple()](https://www.rddoc.com/doc/Python/3.6.0/zh/c-api/arg/#c.PyArg_ParseTuple)当我们用C编写一个python接口时,一定会传入一个tuple类型的args,其中包含在接口中传入的必选参数,默认参数(按顺序传入,不能使用"="赋值形式),和可变参数。我们可以通过[PyArg_ParseTuple()](https://www.rddoc.原创 2022-11-27 11:25:47 · 854 阅读 · 0 评论 -
解决python3.6交叉编译时缺少ssl库的报错:modules were not found
make错误解决: modules were not found配置外部库路径如果在make的时候有如下提示,就是缺少外部库了,此时可以查找其在setup.py的位置并配置![image.png](https://img-blog.csdnimg.cn/img_convert/00140e42c4c87e25fbc21dac41728398.png#align=left&display=inline&height=65&margin=[object Object]&na原创 2022-11-27 11:26:13 · 351 阅读 · 0 评论