草庐IT

c++ - Cython std::pair of two pointers,期望一个标识符或文字

为什么在Cython中可以换行std::pairmyPair;但不是std::pairmyPair;特别是,在Cython中包装std::pair是按如下方式完成的:pair[int,Foo*]并且工作顺利,但是当第一个元素也是一个指针时我遇到了问题:pair[Foo*,Bar*]myPair2我得到了pair[Foo*,Bar*]myPair2^------------------------------------------------------------test.pyx:50:17:Expectedanidentifierorliteral我在Linux上使用Cython0

Python Setup.py Build_Ext --inplace

我正在使用以下命令构建一个Cython程序(称为ex.testpackage):pythonsetup.pybuild_ext--inplace在像/home/USER/Documents/testpackage/这样的文件夹中。构建成功运行,但是当我cd到另一个文件夹时,我不能再使用模块testpackage。我可以运行另一个命令来代替--inplace以便我可以在Python中的任何文件夹中importtestpackage吗?我查看了anaconda/lib/python2.7/site-packages/文件夹,没有在任何地方看到任何对testpackage的引用。这是Cyth

python - 如何在 readthedocs 上记录 cython 函数

关于ReadTheDocs我不允许编译cython扩展,是否可以配置sphinx以便从cython文件中提取文档字符串而不实际编译它们?谢谢! 最佳答案 我遇到了同样的问题,发现现在可以在readthedocs上编译Cython扩展。简短回答:Cython模块可以使用readthedocs提供的virtualenv功能进行编译。有关稍长的答案和示例项目,请参见下文。问题是什么?据我了解,sphinx导入项目的所有模块,然后在python中提取文档字符串。这对于Cython模块是失败的,因为它们不能直接导入并且必须先编译。编译模块在r

python - 在 Cython 中优化字符串

我正在尝试向我们的小组展示Cython在增强Python性能方面的优点。我已经展示了几个基准测试,所有这些都通过以下方式实现了加速:编译现有的Python代码。将cdef用于静态类型变量,尤其是在内部循环中。但是,我们的大部分代码都会进行字符串操作,而且我还没有想出通过键入Python字符串来优化代码的好例子。我试过的一个例子是:cdefstracdefinti,jforjinrange(1000000):a=str([chr(i)foriinrange(127)])但是将“a”作为字符串输入实际上会使代码运行得更慢。我已经阅读了关于“Unicode和传递字符串”的文档,但对它在我展示

python - 快速字符串数组 - Cython

具有以下假设代码:cdefexternfrom"string.h":intstrcmp(char*str1,char*str2)deffoo(list_str1,list_str2):cdefunsignedinti,jc_arr1=??c_arr2=??foriinxrange(len(list_str1)):forjinxrange(len(list_str2)):ifnotstrcmp(c_arr1[i],c_arr2[j]):dosomefunnystuff有什么方法可以将列表转换为c数组吗?我已阅读并尝试过Cython-convertinglistofstringstocha

python - Cython Numpy 代码并不比纯 python 快

首先我知道SO上有很多类似主题的问题,但经过一天的搜索、阅读和测试,我找不到解决方案。我有一个python函数,它计算numpyndarray(mxn)的成对相关性。我最初只是在numpy中这样做,但该函数还计算了倒数对(即除了计算矩阵的A行和B行之间的相关性外,它还计算了B行和A行之间的相关性。)所以我采取了略有不同的方法对于大m的矩阵大约快两倍(我的问题的实际大小是m~8000)。这很好,但仍然有点慢,因为会有很多这样的矩阵,并且全部完成需要很长时间。所以我开始研究用cython来加快速度。我从我读过的内容中了解到,cython不会真正加快numpy的速度。这是真的吗,还是我遗漏了

python - 在 Cython 中使用字典,尤其是在 nogil 中

我有一本字典,my_dict={'a':[1,2,3],'b':[4,5],'c':[7,1,2])我想在Cythonnogil函数中使用这个字典。所以,我试图将其声明为cdefdictcy_dict=my_dict到这个阶段就可以了。现在我需要遍历my_dict的键,如果值在列表中,则遍历它。在Python中,这很容易,如下所示:forkeyinmy_dict:ifisinstance(my_dict[key],(list,tuple)):######Iterateoverthevalueofthelistortupleforvalueinlist:##Dosomeoveropera

python - 使用 Cython 将 Python 代码编译为静态链接的可执行文件

我有一个纯Python脚本,我想将其分发到具有未知Python配置的系统。因此,我想将Python代码编译为独立的可执行文件。我跑cython--embed./foo.py没有问题给foo.c.然后,我跑gcc$(python3-config--cflags)$(python3-config--ldflags)./foo.c哪里python3-config--cflags给-I/usr/include/python3.5m-I/usr/include/python3.5m-Wno-unused-result-Wsign-compare-g-fdebug-prefix-map=/buil

python - 用嵌套枚举包装结构 - vector 模板中的引用

这是一个cross-postofaquestionIaskedinthecython-usergroup一天半前,但还没有得到任何回复,所以我在一个更一般的论坛上试试运气我一直在尝试各种方法来包装下面的代码,但出现了不同程度的错误。大量搜索让我偶然发现了类似的问题,还有一张未完成的心愿单,但老实说,我不确定我是否走在正确的道路上。plow_types.h:namespacePlow{structJobState{enumtype{INITIALIZE=0,RUNNING=1,FINISHED=2};};...classJobFilterT{public:...std::vectorst

python - Numpy->Cython 转换 : Compile error:Cannot convert 'npy_intp *' to Python object

我有以下代码可以正确转换为cython:fromnumpyimport*##returnswinningplayersor[]ifundecided.defscore(board):scores=[]checked=zeros(board.shape)foriinxrange(len(board)):forjinxrange(len(board)):ifchecked[i,j]==0andboard[i,j]!=0:...dostuf我尝试转换为cython:importnumpyasnpcimportnumpyasnp@cython.boundscheck(False)@cython