我需要在Python中构建一个字符串,并将其传递给封装后的C库。C库定义了以下函数:
unsigned char load(char const *FileName)
在.pyx文件中:
def test():
PATH = '/usr/lib/libnx.so'
PATH = <char*>PATH
load(PATH)
但我得到的是:
TypeError: 期望字节,但发现的是字符串
我已经尝试对Python字符串进行编码,但仍然收到同样的错误。cpython
并导入了 stdlib::atoi()
,它还需要一个 char const *
作为参数。当我传递一个 str
对象时,它失败了(就像你的一样),但是在使用 .encode()
后它可以工作。 - Greg Schmit