gpt4 book ai didi

python - 在python中使用c代码时出错

转载 作者:行者123 更新时间:2023-11-28 22:04:40 25 4
gpt4 key购买 nike

我正在使用我在网上找到的以下代码

def c_int_binary_search(seq,t):
# do a little type checking in Python
assert(type(t) == type(1))
assert(type(seq) == type([]))

# now the C code
code = """
#line 29 "binary_search.py"
int val, m, min = 0;
int max = seq.length() - 1;
PyObject *py_val;
for(;;)
{
if (max < min )
{
return_val = Py::new_reference_to(Py::Int(-1));
break;
}
m = (min + max) /2;
val = py_to_int(PyList_GetItem(seq.ptr(),m),"val");
if (val < t)
min = m + 1;
else if (val > t)
max = m - 1;
else
{
return_val = Py::new_reference_to(Py::Int(m));
break;
}
}
"""
return inline(code,['seq','t'])

来自 documentation of scipy

当我尝试执行此脚本时出现以下错误

  binary_search.py: In function ‘PyObject* compiled_func(PyObject*, PyObject*)’:
binary_search.py:36:38: error: ‘Py’ has not been declared

我想知道是否有人可以在这方面指导我。我已经安装了 PyCXX。我正在使用 Ubuntu。

非常感谢。

最佳答案

该示例已过时,Py 命名空间在最新版本中不存在。

一些发行版使用 scipy 提供示例(应该保持最新)。在我的机器上,有这个:

/usr/lib64/python2.7/site-packages/scipy/weave/examples/binary_search.py

如果你没有类似的东西,你可以从SciPy repository下载。 .

关于python - 在python中使用c代码时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6764512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com