gpt4 book ai didi

python - 在 Raspi 上使用带有 Python 的 C 库

转载 作者:行者123 更新时间:2023-11-30 14:33:30 25 4
gpt4 key购买 nike

我正在尝试在 Raspi (Pololu VL53L1X) 上使用飞行时间传感器,但 python 中没有该传感器的库。原始制造商为传感器提供了 C API,但我不知道如何在我的 python 代码中使用 API 函数。有人可以帮助我了解在 Raspi 上使用传感器可以做什么,而无需从头开始编写库吗?我做了一些研究,几乎每个人都建议在 python 中包装 C 库(在本例中是 API?),但我不确定如何做到这一点。任何想法或建议都是有值(value)的。

附注有 Arduino 传感器的库,但我无法使用 Arduino,我需要它在 Raspi 上运行,并在可能的情况下使用 python。我是 Raspi 和 Python 的初学者,所以对你的想法进行一些解释会很有帮助。

最佳答案

为 C 库制作一个简单的 Python 包装器。

我的工作目录中有以下文件

mylib.c:

#include <stdio.h>

int sumof(int a, int b)
{
return a+b;
}

wrapper.py:

from ctypes import CDLL
so_file = "/path/to/my/work/dir/mylib.so"
my_c_lib = CDLL(so_file)

def sumof_fun(a,b):
return my_c_lib.sumof(a,b)

如您所见,我们在 python 包装器中使用共享库(.so 文件)来创建该共享库,我们使用以下命令:

$gcc -fPIC -shared -o mylib.so mylib.c

现在在 python 中我可以使用以下内容:

>>> import wrapper
>>>
>>> wrapper.sumof_fun(4,5)
9

引用号:https://www.journaldev.com/31907/calling-c-functions-from-python

PS:但就你而言,我仍然认为最好选择 pimoroni vl53l1x-python package

关于python - 在 Raspi 上使用带有 Python 的 C 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59278605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com