我是一名有用的助手,可以翻译文本。
在Cython中:
我有一个指向bytes
对象的Python memoryview
,我想在Cython中对其进行一些处理。
我的问题是:
- 因为
bytes
对象不可写,所以Cython不允许从中构建类型化(Cython)memoryview - 我也不能使用指针,因为我无法获取指向memoryview开头的指针
示例:
在Python中:
array = memoryview(b'abcdef')[3:]
在Cython中:
cdef char * my_ptr = &array[0]
编译失败,错误信息为:Cannot take address of Python variable
cdef char[:] my_view = array
运行时失败,错误信息为:BufferError: memoryview: underlying buffer is not writable
如何解决这个问题?
array
参数? - Pierre de Buyldef myfunc(arr): pass
- ARFPy_buffer
结构体,这可能会有所帮助。https://docs.python.org/3.5/c-api/buffer.html - Pierre de BuylPy_buffer
结构的提示!我得出了相同的解决方案。请查看下面我对自己问题的回答... - ARF