根据Cython文档,我编写以下cython代码如下:
In [1]:%load_ext Cython
In [2]: %%cython --annotate
from libcpp.vector cimport vector
cdef vector[int] *vec_int = new vector[int](10)
编译后,ipython产生了以下错误:
Error compiling Cython file:
------------------------------------------------------------
...
from libcpp.vector cimport vector
cdef vector[int] *vec_int = new vector[int](10)
^
------------------------------------------------------------
/Users/m/.ipython/cython/_cython_magic_a72abb419ccf1b31db9a1851b522a4bf.pyx:3:32: Operation only allowed in c++
我的代码出了什么问题?
答案 0 :(得分:2)
您需要通过特别评论告诉cython
您正在撰写C++
而不是C
# distutils: language = c++
在%%cython --annotate
阻止后添加此功能将解决您的问题。
答案 1 :(得分:1)
作为{romeric答案的替代方法,documentation for ipython Cython magic建议使用
%%cython --cplus
打开C ++模式。也可以通过在IPython控制台中运行%%cython?
来访问命令的帮助。
我个人认为使用distutils注释方法要说很多话,因为它将语言与需要它的代码链接在一起。