问题标签 [cython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
801 浏览

python - Python Distutils

由于Distutils的严格版本编号类,我无法安装cython。例如 binutils-2.18.50-20080109-2.tar.gz 不能与MinGW一起用于安装 cython。源代码文档说“这个版本编号系统的基本原理将在 distutils 文档中解释。” 我找不到理由。

我的问题:这个版本编号系统的基本原理是什么?

0 投票
10 回答
31741 浏览

python - 扩展 python - swig,而不是 swig 或 Cython

我在我的 python 代码中发现了瓶颈,玩弄了 Psycho 等。然后决定编写 ac/c++ 扩展来提高性能。

在 swig 的帮助下,您几乎不需要关心争论等。一切正常。

现在我的问题是:swig 创建了一个相当大的 py 文件,它在调用实际的 .pyd 或 .so 代码之前会执行大量“检查”和“PySwigObject”。

如果你手写这个文件或者让 swig 来做,你们中的任何人是否有任何经验是否可以获得更多的性能。

0 投票
1 回答
848 浏览

python - 动态使用 Cython 扩展模块中定义的类方法

如果存在,我想使用类方法的 C 实现(从Cython生成),或者如果不存在 C 扩展,则使用其 Python 等效项。我首先尝试了这个:

其中 optimize_method 是Cython模块中定义的函数:

但这不起作用:

我发现完成这项工作的唯一方法是:

但是在每个函数调用中检查模块的存在似乎并不理想......为什么我的第一种方法不起作用?

[编辑]:添加Cython模块的内容

0 投票
3 回答
3481 浏览

mingw - Windows 上的 Cython pyximport 错误

我正在使用 Cython 迈出第一步,并根据wiki 中的说明将其安装在我的机器上。

通过 Cython 教程,我得到了pyximport,它应该使 cython 编译变得非常简单。但是,当我尝试使用它时,我收到以下错误消息(重新格式化):

所以我的问题是:有人知道让 pyximport 使用 mingw 的方法吗?

请注意,mingw 似乎已正确安装,制作 Cython 模块(使用 setup.py)的漫长方法确实为我工作,而且我什至创建了一个distutils.cfgwiki 告诉我的文件。

0 投票
6 回答
8839 浏览

python - Cython 中的字符串操作

我有一些代码可以执行一些非常占用 CPU 的字符串操作,并且我正在寻找提高性能的方法。

(编辑:我正在做一些事情,比如找到最长的公共子字符串,运行许多可能更好地表示为 c 中的状态机的正则表达式,从 HTML 中剥离注释,诸如此类。)

在听到很多关于它的好消息后,我目前正在考虑将一些代码移植到Cython 。然而,Cython 的主要关注点似乎是数值计算,并且几乎没有记录使用字符串。

Unicode 也可能是一个大问题。

我的问题是:

  1. 我什至应该为字符串的东西烦恼 Cython 吗?有没有人在 cython 中有这种类型的处理经验并可以分享?
  2. 我在 Cython 文档中遗漏了什么吗?有谁知道有关在 Cython 中使用字符串的教程/参考/文档?
0 投票
2 回答
2042 浏览

c++ - 来自 cython wiki 的 Hello World 不起作用

我正在尝试从 Cython 学习本教程:http://docs.cython.org/docs/tutorial.html#the-basics-of-cython 但我遇到了问题。

文件非常简单。我有一个 helloworld.pyx:

和一个 setup.py:

我用标准命令编译它:

我收到以下错误:

我从 Ubuntu 9.04 存储库安装了 python 和 cython。我不明白为什么编译器找不到 Python.h。

我试着做:

然后使用 gcc 手动编译结果:

并得到了相同的错误信息。

有什么线索吗?

0 投票
3 回答
5083 浏览

python - Cython 和 numpy 速度

我在我的 python 程序中使用 cython 进行相关性计算。我有两个音频数据集,我需要知道它们之间的时间差。第二组根据开始时间进行切割,然后滑过第一组。有两个 for 循环:一个滑动集合,内部循环计算该点的相关性。这种方法效果很好,而且足够准确。

问题是,对于纯 python,这需要超过一分钟。使用我的 cython 代码,大约需要 17 秒。这还是太多了。您是否有任何提示如何加速此代码:

0 投票
2 回答
1752 浏览

python - Cython/Pyrex 生成的 Python 扩展是线程安全的吗?

如果没有,有没有办法通过某种方式编程来保证线程安全?

澄清一下,在谈论“线程安全”时,我指的是 Python 线程,而不是操作系统级线程。

0 投票
6 回答
20854 浏览

c++ - 在 Cython 中做列表/字典的惯用方式?

我的问题:我发现使用 STL 映射和向量使用原始 C++ 处理大型数据集通常比使用 Cython 快得多(并且内存占用更少)。

我认为这种速度损失的部分原因是由于使用了 Python 列表和字典,并且可能有一些技巧可以在 Cython 中使用较少的数据结构。例如,此页面 ( http://wiki.cython.org/tutorials/numpy ) 展示了如何通过预定义 ND 数组的大小和类型在 Cython 中非常快速地制作 numpy 数组。

问题:有没有办法对列表/字典做类似的事情,例如通过大致说明您希望其中有多少元素或(键,值)对?也就是说,是否有一种惯用的方式将列表/字典转换为 Cython 中的(快速)数据结构?

如果不是,我想我只需要用 C++ 编写它并包装在 Cython 导入中。

0 投票
7 回答
8638 浏览

python - Noob-Ready Cython 教程

我知道一堆脚本语言(python、ruby、lua、php),但我不知道任何编译语言,如 C/C++,我想尝试使用 cython 加速一些 python 代码,这本质上是一个 python - > C 编译器,旨在为 python 创建 C 扩展。基本上,您使用更严格的 python 版本进行编码,该版本编译为 C -> 本机代码。

这就是问题所在,我不知道 C,但是 cython 文档是针对那些显然已经知道 C 的人(没有解释,只介绍),对我没有帮助,我需要知道是否有任何好的针对 python 程序员的 cython 教程,或者如果我在学习 Cython 之前必须学习 C。

请记住,我是一个称职的 python 程序员,我宁愿从我已经擅长的语言的角度学习 cython,而不是为了学习 cython 而学习一门全新的语言。

1) 请不要推荐 psyco

编辑:任何有助于理解官方 cython 文档的信息都是有用的信息