在 ipython 中使用 Cython 包装 C++ 标准库

use*_*559 3 c++ python cython

根据Cython文档,我编写了以下cython代码如下:

\n\n
In [1]:%load_ext Cython\nIn [2]: %%cython\n         from libcpp.vector cimport vector\n\xe2\x80\x8b         cdef vector[int] *vec_int = new vector[int](10)\n
Run Code Online (Sandbox Code Playgroud)\n\n

编译后,ipython产生以下错误:

\n\n
Error compiling Cython file:\n------------------------------------------------------------ \n... \nfrom libcpp.vector cimport vector \ncdef vector[int] *vec_int = new vector[int](10) \n                               ^ \n------------------------------------------------------------\n/Users/m/.ipython/cython/_cython_magic_a72abb419ccf1b31db9a1851b522a4bf.pyx:3:32: Operation only allowed in c++\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的代码有什么问题吗?

\n

rom*_*ric 6

您需要通过特殊注释来表明cython您正在编译C++而不是编译C

# distutils: language = c++
Run Code Online (Sandbox Code Playgroud)

在块之后添加此内容%%cython将解决您的问题。