草庐IT

cython_bbox

全部标签

c++ - 将 c++ 异常传播到 cython - python 异常

我对Cython0.17.1有疑问如果文件不存在,我的函数将抛出std::runtime_error,我想以某种方式将此异常传播到我的Cython代码。voidloadFile(conststring&filename){//somecode,iffilenamedoesn'texiststhrowstd::runtime_error(std::string("Filedoesn'texists"));}在正确包装函数后来自Cython:try:loadFile(myfilename)exceptRuntimeError:print"Can'tloadfile"但是这个异常总是被忽略,

python - Cython 无法识别 c++11 命令

我正在用Python包装C++类,但我无法使用Cython模块编译任何C++11功能。单独编译C++时一切都编译正常。但是当我在下面运行这个setup.py时:setup(ext_modules=cythonize("marketdata.pyx",#ourCythonsourcesources=["cpp/OBwrapper.cpp,cpp/OrderBook/orderbook.h,cpp/OrderBook/orderbook.cpp"],#additionalsourcefile(s)language="c++",#generateC++codeextra_compile_ar

python - Cython 可以加速对象迭代数组吗?

我想使用cython加速以下代码:classA(object):cdeffun(self):return3classB(object):cdeffun(self):return2deftest():cdefintx,y,i,s=0a=[[A(),B()],[B(),A()]]foriinxrange(1000):forxinxrange(2):foryinxrange(2):s+=a[x][y].fun()returns唯一想到的是这样的:deftest():cdefintx,y,i,s=0types=[[0,1],[1,0]]data=[[...],[...]]foriinxrang

python - 在 Cython 中共享扩展类型以进行静态类型化

我将Python类转换为.pyx文件中的扩展类型。我可以在另一个Cython模块中创建这个对象,但我不能用它做静态类型。这是我类(class)的一部分:cdefclassPatternTree:cdefpublicPatternTreepreviouscdefpublicPatternTreenextcdefpublicPatternTreeparentcdefpubliclistchildrencdefpublicinttypecdefpublicunicodenamecdefpublicdictattributescdefpubliclistcategoriescdefpublic

python - Cython 浮点除法 PyExc_ZeroDivision 错误检查

我正在进行一些循环密集型计算并将代码转换为Cython。我使用cython-a选项进行了分析,并检查了.html文件,似乎每当我进行浮点除法时,都会出现一些黄线,并且它会执行如下操作:if(unlikely(__pyx_t_37==0)){PyErr_Format(PyExc_ZeroDivisionError,"floatdivision");{__pyx_filename=__pyx_f[0];__pyx_lineno=84;__pyx_clineno=__LINE__;goto__pyx_L1_error;}}我想这是针对分频器为0的情况。我为此使用了一个常量,分频器不可能为0,

python - 只打包用 Cython 编译的 python 库的二进制编译 .so 文件

我有一个名为mypack的包,里面有一个模块mymod.py,并且__init__.py。出于某种不在争论中的原因,我需要打包这个模块编译(也不允许.py或.pyc文件)。也就是说,__init__.py是唯一的分布式压缩文件中允许的源文件。文件夹结构是:.│├──mypack│├──__init__.py│└──mymod.py├──setup.py我发现Cython可以通过转换.so库中的每个.py文件来做到这一点可以直接用python导入。问题是:setup.py文件必须如何才能轻松打包和安装?目标系统有一个virtualenv,必须在其中安装软件包任何允许轻松安装和卸载的方法(

c++ - Cython VS C++ 性能比较?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭9年前。Improvethisquestion我正在尝试使用Cython来编写我的项目。我的计划是用C++编写.dll,然后通过Cython从Python调用它们。这样我就可以拥有C++的高计算性能,同时保持Python开发的简单性。随着我的深入,我有点困惑。据我了解,Cython将python代码包装到C中。由于C具有更好的计算性能,因此性能得到了提高。我对此是否正确?如果我在上面,那么是否有必要用C++编写.dll并从Python调用它以提高性能

c++ - 如何最好地将 C++/Cython 项目编译成可执行文件?

我有一个包含一堆C++和Python/Cython文件的项目。到目前为止,我主要开发了C++部分并使用qmake将其编译为静态库。一些方法通过boost::python公开,并从.py文件中执行。我现在想将整个东西编译成一个独立的可执行文件。我现在的问题是:最好的方法是什么?我尝试切换到Cython,编译python文件并链接库。但似乎没有直接的方法使用distutils/setup.py来编译可执行文件,只有共享库。有没有一种方法可以轻松地将.cpp和.pyx文件同时编译成可执行文件?这样我就可以摆脱很多boost::python包装器的东西,得到c++/python的巧妙组合,而不

python - Cython:使用 C++ 流

问题如何使用来自Cython的C++流(如std::ifstream或ostream)?在C++中,您可以执行以下操作:std::ofstreamoutput{filename,std::ios::binary};output.write(...);您将如何在Cython中实现同样的目标?当前状态我在Cython中包装了来自fstream的结构,以便我可以在函数声明中使用它们的名称,但棘手的部分是使用(也许在Cython中包装)write方法并创建流。我还没有在互联网上找到任何代码示例。附言我知道一个可能的答案是只使用Python的IO,但我需要将流传入和传出我正在与之交互的C++代码

python - 如何使用 Cython 围绕 C 结构编写完整的 Python 包装器?

我正在使用Cython为Python的C库编写高级接口(interface)。我有一个扩展类型A,它使用指向更复杂的C上下文结构c_context的指针来初始化库。指针保存在A中。A也有一个def函数,它又创建了另一个扩展类型B,用库函数调用初始化另一个C结构。B中的后续库调用需要此结构。B需要来自A的c_context指针,它被我包装在扩展类型py_context中以便传递它从B到__cinit__:#lib.pxd(Clibrarydefinitions)cdefexternfrom"lib.h":ctypedefstructc_context:pass#filepy_contex