草庐IT

cythonized

全部标签

python - 使用 Cython + MinGW 构建独立应用程序

我正在尝试从Python代码构建独立的应用程序。目前它只是一个“helloworld”程序。我用Cython编译它以获得一个.c文件:"c:\python34\scripts\cython.exe"--embedhello.py这很好用。然后我尝试按如下方式编译和链接生成的.c文件:"c:\mingw32\bin\gcc.exe"-I"c:\python34\include"-L"c:\python34\libs"-lpython34-ohello.exehello.c这给了我很多链接错误:...\cc7PmSei.o:hello.c:(.text+0xe9):undefinedref

python - 在涉及 Cython 的 setup.py 中,如果 install_requires,那么如何从库中导入一些东西?

这对我来说没有意义。如何使用setup.py安装Cython,然后还使用setup.py编译库代理?importsys,imp,os,globfromsetuptoolsimportsetupfromCython.Buildimportcythonize#thisisn'tinstalledyetsetup(name='mylib',version='1.0',package_dir={'mylib':'mylib','mylib.tests':'tests'},packages=['mylib','mylib.tests'],ext_modules=cythonize("mylib_

python - 导入 Cython 生成的 .so 文件时,这个 ImportError 是什么意思?

我正在浏览Cython文档并构建每个示例应用程序。我有点卡在使用C库上。成功构建.so文件并尝试将其导入名为test.py的python文件后,抛出以下错误。$python3.2test.pyTraceback(mostrecentcalllast):File"test.py",line12,infromqueueimportQueueImportError:dlopen(/Users/jeremy/Development/labs/python/cython_lib_wrapper/queue.so,2):Symbolnotfound:_queue_freeReferencedfro

python - Cython 对导入做了什么?

我想创建一个Python扩展,我非常喜欢使用Cython的想法。主要是为了获得更多关于它的知识并利用速度提升(如果有的话)。我已经阅读了相当多的Cython文档,但我(还)不是计算机科学家并且没有深入的知识来理解低级基础知识,因此我提出以下问题的原因:我只是想知道,如果我在我正在开发的Python扩展中使用外部导入(例如,ORM或SQL库或任何其他第3方库)会怎样?Cython是如何处理的?如果这个导入的库/扩展是纯Python的还是编译的,会有区别吗?处理这个问题的正确方法是什么?谢谢。附言。问题以粗体显示。 最佳答案 cytho

python - 为什么cython不编译逻辑或者到 `||`表达式?

例如,这里有一个or表达式:c=f1==0orf1-f0>th编译后的C代码:__pyx_t_24=(__pyx_v_f1==0);if(!__pyx_t_24){}else{__pyx_t_23=__pyx_t_24;goto__pyx_L5_bool_binop_done;}__pyx_t_24=((__pyx_v_f1-__pyx_v_f0)>__pyx_v_th);__pyx_t_23=__pyx_t_24;__pyx_L5_bool_binop_done:;__pyx_v_c=__pyx_t_23;为什么不输出这个?__pyx_v_c=(__pyx_v_f1==0)||((_

python - Cython 函数中的字符串

我想这样做以将字符串传递给Cython代码:#test.pys="Bonjour"myfunc(s)#test.pyxdefmyfunc(char*mystr):cdefintiforiinrange(len(mystr)):#error!len(mystr)isnotthelengthofstringprintmystr[i]#butthelengthofthe*pointer*,ieuseless!但是如评论中所示,这里并没有按预期工作。我发现的唯一解决方法是将长度也作为myfunc的参数传递。这是对的吗?它真的是将字符串传递给Cython代码的最简单方法吗?#test.pys="

python - Cython 用户的 Numpy 类型

当我在Cython代码中使用它们时,我不太明白numpy.{typename}、numpy.npy_{typename}和numpy.{typename}_t之间有什么区别?即这些类型有什么区别:#test.pyxcimportnumpyasnpimportnumpyasnpnp.float32np.npy_float32np.float32_t据我所知:第一种类型是动态的,即Cython将生成一些代码以在运行时检测该类型的大小。另外两种类型是静态的,即使用它的代码将使用每种类型的预定义大小进行编译。请指正。附加链接:https://docs.scipy.org/doc/numpy/r

python - 将 Cython 中的 numpy 数组传递给需要动态分配数组的 C 函数

我有一些具有以下声明的C代码:intmyfunc(intm,intn,constdouble**a,double**b,double*c);所以a是常量二维数组,b是二维数组,c是一维数组,都是动态分配的。b和c在传递给myfunc之前不需要具体是什么,应该理解为输出信息。出于这个问题的目的,我不允许更改myfunc的声明。问题1:如何将给定的numpy数组a_np转换为具有此C函数所需格式的数组a,因此我可以用a在Cython中调用这个C函数吗?问题2:b和c的声明是否正确,或者它们是否需要采用其他格式才能用于C函数将它们理解为二维和一维数组(分别)?我的尝试:我的文件.pxdcde

python /赛通 : Using SciPy with Cython

Cython教程展示了一个很好的示例,说明如何将Numpy与Cython结合使用。但是,我有使用scipy.stats包的代码,在尝试编译代码时,出现如下错误:dvi.pyx:7:8:'scipy.stats.pxd'notfound我担心Cython(?)不支持scipy。有人可以评论在Cython中使用scipy或指出一些资源/教程的方向吗?谢谢! 最佳答案 所以我在CythonGoogleGroup(https://groups.google.com/forum/?fromgroups#!searchin/cython-use

python - Cython 正确性

Cython生成的代码是否总是与生成它的Python代码一样正确?它可能会帮助其他读者解决Cython静态类型声明和其他Cython功能(如果有的话)的使用问题,尽管我只对通过将Python模块重命名为*.pyx来创建Cython文件的情况感兴趣。我只关心Cython涵盖的Python子集。 最佳答案 一般来说,是的。当然还有bugs(虽然很多都围绕着扩展支持的Python子集,但实际上导致生成的C代码不正确的错误相对较少),并且有一些必要的caveats(尽管看起来该短列表中只有一项偏离了Python语义)。当您在纯Python模