如何将变量值从c++传递到Python

How to pass variable value from C++ to Python?

本文关键字:Python c++ 变量值      更新时间:2023-10-16

我有一个可以使用c++读取的传感器值,因为它是使用它实现的,我想将一个传感器的位置值(两个float变量)传递给Python。我已经读了很多,我发现共享内存,管道和更多的你知道什么是最好的方法来做到这一点吗?

从你的问题中不清楚这是一个独立的c++程序还是一个库。

如果它是一个独立的程序,使用子进程模块来调用它并读取它的输出。

如果它是一个库,使用Cython构造一个包装该库的Python扩展模块。(使用Cython并不需要;Python扩展可以手工编写。但是它会使任务容易得多。)

@ramtha Z28与您提供的有限信息…你是否可以访问c++代码本身,或者你正在调用DLL?如果有源代码,可以在Cython中包装函数,以便在Python和c++之间进行通信。将所有c++代码块包装在cpdef语句中,这些语句可以从Python和c++中访问。下面的示例文件向您展示了如何在Cython中包含C程序并与Python交互:https://github.com/cythonbook/examples/tree/master/07-wrapping-c/01-wrapping-c-functions-mt-random

如果它是一个DLL,你必须声明所有的常量,函数,返回值。实际上这个例子可能和你已经在使用的类似:http://people.seas.harvard.edu/~krussell/html-tutorial/wrap_dll.html

我不熟悉python,但是,一个简单的方法是使用一些通信协议,如串行端口或udp,这是一种网络协议。对于实时应用,UDP协议是更好的选择。