from ctypes import cdll
from time import sleep
class SDKLibrary(object):
def __init__(self):
self.lib = cdll.LoadLibrary("sharedlibrary.so")
self.sdk = self.lib.SDK_new()
def Function(self):
self.lib.Function1(self.sdk, 1, 2)
x = SDKLibrary()
x.Function() //This call from Python working fine
但是当我尝试从机器人调用函数时,它抛出一个没有参数的错误失败了: OSError: sharedlibrary.so: 无法打开共享对象文件: 没有这样的文件或目录
不确定您的文件结构是什么样子的,但是当我将机器人测试脚本放在与python库不同的文件夹中时,我遇到了同样的问题。我通过预先挂起 C 库的绝对文件路径来解决它。
def __init__(self):
self.lib = cdll.LoadLibrary(absolute/file/path/ + "sharedlibrary.so")
self.sdk = self.lib.SDK_new()