python unsigned long_无法将“vector<unsigned long>”转换为Python obj

我试图用签名来包装一个c++函数vector < unsigned long > Optimized_Eratosthenes_sieve(unsigned long max)

使用Cython。我有一个包含函数的文件sieve.h,一个静态库sieve.a和my设置.py具体如下:

^{pr2}$

在我的筛子.pyx我正在尝试:from libcpp.vector cimport vector

cdef extern from "sieve.h":

vector[unsigned long] Optimized_Eratosthenes_sieve(unsigned long max)

def OES(unsigned long a):

return Optimized_Eratosthenes_sieve(a) # this is were the error occurs

但我得到了这个“无法将'vector'转换为Python对象”的错误。我错过什么了吗?在

解决方案:我必须从OES函数返回一个python对象:def OES(unsigned long a):

cdef vector[unsigned long] aa

cdef int N

b = []

aa = Optimized_Eratosthenes_sieve(a)

N=aa.size()

for i in range(N):

b.append(aa[i]) # creates the list from the vector

return b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值