问题标签 [cythonize]
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.
emscripten - 给定 Python 库 Cythonised (--embed) 到 C 作为 Emscripten 的输入,输出的 JS 已定义函数
我想将我的 python 库转换为可以在浏览器中运行的 Javascript。到目前为止,我尝试了以下方法但没有成功。
但是 eemcc 抱怨以下内容:
这些函数在 c 输入中缺失,在 JS 输出中,它们作为未实现的存根函数存在,例如
正如预期的那样,当我尝试通过节点运行 JS 时,它会出错:
python - 在 Windows 上使用 Cython 编译:缺少源文件名
我正在尝试在 Windows 10 上使用 Cython 编译一个 hello world 示例。我有 Visual Studio 2015 社区。Python 3.5.2
我的 setup.py 看起来像这样:
我要编译的文件如下所示:
我用这个命令构建:
我不断收到此错误:
我一直在做很多研究,但我发现了很多什么都没有。我怎样才能解决这个问题?
gcc - Anaconda cython 构建的模块正在寻找错误的 GLIBCXX
让我解释一下情况。
我使用系统 g++(在 linux 下)编译了一个 c++ 库。然后构建一个 cython 模块,该模块调用预编译库中的函数。构建 cython 模块是在 anconada venv 下完成的(但 venv 内没有安装 g++。因此 cython 必须使用系统 gcc/g++)。现在在同一个anaconda venv下,导入cython模块会报错:
似乎由系统 g++ 编译的 c 库(libc_rd_halo.so)现在正在寻找 anaconda g++ 库。而且我没有在 anaconda venv 中安装 g++。
我可以通过使用 anaconda g++ 从头开始编译 c 库来解决这个问题。再次构建 cython 模块,然后我可以导入模块。但是我想让 anaconda cython 使用系统编译器并在导入模块时查找系统编译器库。
我的问题是:
为什么anaconda cython默认寻找本地anaconda g++,而不是系统编译器?这样做有什么好处吗?
如何让 anaconda cython 查找系统编译器库?
python - 编译cython的HelloWorld示例:不知道如何在平台上编译C/C++代码
每当我尝试编译 simpleset cython 示例时
你好世界.pyx
安装程序.py
我正在接收
我做错了什么?
PS我正在使用
optimization - 哪个更快:python 中的 defaultdict 或 cython 中的 libcpp.map?
我正在尝试优化一个存储单词及其计数的函数。到目前为止,Python 的实现相当缓慢。我正在尝试对功能进行cythonize。我们在 cython 中对应于 defaultdict 还有哪些其他选择?
python - Cython 文件无法编译
我有一个运行速度太慢的巨大 Python 代码。我不想用 C 重写我的整个代码,所以我做了一些研究,然后遇到了 Cython。有人建议我将我的 Python 代码保存为 .pyx 并创建一个 setup.py 文件,该文件将“细胞化”我的代码,然后将其编译成 C。
但是,当我键入时出现错误C:/Users/loic/Documents/maido-cython/setup.py build_ext –inplace
:
这里是我使用的代码 ( maido-cython.py
) 和 4 个 numpy 文件 ( ******_maido_856x512.npy
)(不用担心我将它上传到我自己的 Google 帐户):https ://drive.google.com/drive/folders/0B7P95aWmH4DUek9xcEROb0FQR0E
这是我在设置文件中写的:
有人可以告诉我我做错了什么吗?
编辑:
我听取了您的建议并更改了文件。我还更改了上传的链接:https ://drive.google.com/drive/folders/0B7P95aWmH4DUcFY0X3JycGlacDQ
当我键入C:/Users/loic/Documents/maido/setup.py build_ext –inplace
与冒号字符“:”有关时,我遇到了另一个问题
我没有找到对应的unicode字符。我应该添加什么?
python - Cython:ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序
我用 Cython 编译了我的 Python 代码并得到了一个.pyd
文件。我想导入它,所以建议我把它放在我的PYTHONPATH
.
这里是 :
我把我的.pyd
文件放进去C:\\Users\\loic\\Anaconda2\\lib\\site-packages
,当我尝试用 Python 导入它时,我收到了这条消息:
然后我将我的.pyd
文件放在与我的 Python 程序相同的目录中,我得到了完全相同的消息。
我做了一些研究,发现了那篇文章(使用 cython 扩展一旦编译 [在 Windows 下],如何使用 .pyd's?),但它似乎没有给我更多信息。
我在 Anaconda 2 中使用 Python 64 位,因为我编译的代码需要 Python 64 位(它需要更多内存,否则控制台很快就会在内存中饱和)。
有人能告诉我我应该怎么做才能使它与 Python 64 位一起工作吗?
编辑:如果你需要它,这是我的setup.py
文件
python - 使用 Cython 处理可变大小的列表
我想对 Sutherland-Hogman 算法的python实现进行cythonise 。该算法根据非常简单的规则(在边缘内部或外部等)更新顶点列表,但细节并不重要。这是python版本,它接受顺时针方向的多边形顶点列表。例如那些:
并计算它们的交集:
这是在rosettacode 上找到的代码,稍作修改以在没有交集的情况下返回一个空列表。
这个函数对我的应用程序来说非常慢,所以我尝试使用 numpy 对它进行 cythonize。这是我的 cython 版本。我必须在剪辑之外定义这两个函数,因为我有关于缓冲区输入的错误消息。
cython1
当我对这两个版本进行计时时,我在加速方面只获得了两倍,我需要至少 10 倍(或 100 倍!)。有什么事要做吗?如何使用 Cython 处理列表?
编辑 1:我遵循@DavidW 的建议,我分配 numpy 数组并修剪它们而不是使用 list,我现在正在使用 cdef 函数,这些函数应该可以提高 10 倍的速度,不幸的是我根本没有看到任何加速!
cython2
这是基准:
39.45
44.12
第二个更惨!
编辑 2来自 CodeReview 的 @Peter Taylor 的最佳答案使用了这样一个事实,即每次计算 inside_s 都是多余的,因为 s=e 并且您已经计算了 inside_e (并将 dc 和 n1 从函数中分解出来,但它没有多大帮助)。
混合这两个版本(只有 numpy 数组和@Peter Taylor 的技巧效果稍差)。不知道为什么?可能是因为我们必须分配一长串大小为 sP.shape[0]*cp.shape[0] 的列表?
python - Cython:导入 .pyd 文件会返回错误(缺少初始化函数?)
我正在学习如何使用 Cython 高效地编译 Python 代码并使其更快。
这是我到目前为止所做的:
- 我创建了一个名为的 Python 文件
math_code_python.py
,并在其中放入了 4 个简单的函数。 - 我将该文件保存为
math_code_cython.pyx
. - 我创建了一个名为
setup.py
. - 我输入
python C:\Users\loic\Documents\math_code\setup.py build_ext --inplace
了我的Command Prompt
. - 我得到了一个名为
math_code_cython.cp36-win_amd64.pyd
我重命名的编译文件math_code_pyd.pyd
。 最后,我创建了一个 Python 文件
/li>test_math_code.pyd
,只import math_code_pyd
在其中调用了 with。当我执行这个文件时,我收到了这条消息:
我做了一些研究,感谢那些帖子,我明白我必须提供init function
:
- https://bytes.com/topic/python/answers/694888-constructor-initialization-function-module
- Python 3.5 ImportError:动态模块未定义模块导出函数(PyInit_cv2)
我的问题是:我该怎么做?我是否必须在末尾添加一个函数,math_code_python.py
如下所示?
我的 Python 版本:
math_code_python.py
安装程序.py
python - Cythonize python 字典对象
我正在使用 cython 来提高 python 函数的性能。基本上我只能在字典操作中提高性能。所以我试图搜索用 c 编写的任何字典,我发现 cython 本身包含一个 .pxd 文件,该文件基本上是“Cython/includes/cpython”中 .h 文件的包装器。我的问题是如果我直接使用cimport dict
,如何在编译时包含上述路径?
如果我使用这个 dict.pxd 我会在性能上得到任何改进吗?我附上了 dict.pxd 的代码
https://github.com/cython/cython/blob/master/Cython/Includes/cpython/dict.pxd