草庐IT

cython-users

全部标签

c++ - 如何在 Cython 中返回新的 C++ 对象?

我怀疑对此有一个简单的答案,但我需要一些帮助才能开始使用Cython。我有一个现有的C++代码库,我想通过Cython将其公开给Python。对于我想要公开的每个类,我创建了一个Cythoncppclass_ClassName和Python包装器类ClassName。一个最小的例子:Object.hCythonMinimal.pyxsetup.pyObject.h的内容:classObject{public:Objectclone(){Objecto;returno;}};CythonMinimal.pyx的内容:cdefexternfrom"Object.h":cdefcppclas

python - 如何在 Cython 和 Weave 中编写快速的 log-sum-exp?

我正在寻找从Python代码加速log-sum-exp(使用“最大技巧”)操作的选项。我在Windows8上使用Python2.7。我整理了使用Numpy、Scipy的实现、Numba、Cython、Weave和numexpr的实现比较,可以查看hereonnbviewer.我原以为我的Cython和Weave版本是所有版本中最快的,因为它们最接近native代码。但实际上,它们比我的其他版本慢。如何尽可能快地制作这些版本?编辑:wrt最初的笔记本,在所有方法中添加了max技巧,使比较不那么琐碎,更接近我的实际需要。 最佳答案 对于

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 - Django 模型中的 request.user

我正在使用Django模型为表单创建字段。我希望自动检测并填写用户的用户名,这样我就可以将其隐藏在我的表单中(而不是让他们从拥有每个人用户名的长列表中选择他们的用户名)。为此,我正在使用:current_user=request.user然后将默认设置为current_user。但是,我不断收到此错误:NameError:name'request'isnotdefined我假设您不能在Django模型中使用请求,但是有什么方法可以解决这个问题吗?这是我的models.py文件的相关部分:classStockTickerSymbol(models.Model):StockName=mod

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