问题标签 [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.

0 投票
0 回答
368 浏览

python-3.x - Python 3.5 cythonizing 无法创建 DLL

我正在尝试使用 Python 3.5 和 cython 创建一个 DLL 文件 (.pyd)。我有以下文件:

安装程序.py

你好世界.pyx

要创建helloworld.pyx文件,我创建了一个helloworld.py文件并将其重命名为.pyx

我执行以下操作来生成 DLL 文件:

  • 打开命令提示符

  • cd 到包含文件的目录

  • 运行命令:python setup.py build_ext

我收到以下错误:

上述步骤基于从 Web 创建 DLL 文件的过程。我尝试查找错误,但没有收到任何有用的答案。

编辑:

我使用此链接进一步检查了 cygwin 和 MinGW 的安装

现在我收到以下错误:

编辑 2:我尝试了这里介绍的解决方案,但它不适用于我的情况。我正在使用 Windows 10 专业版、Python 3.5

0 投票
1 回答
878 浏览

python - 在 Cython 中声明一个 numpy 布尔掩码

我应该如何在 Cython 中声明布尔掩码的类型?我真的需要申报吗?这是示例:

0 投票
0 回答
82 浏览

cython - Cython:重新编译模块

我有一个关于在 Cython 中编译模块的快速且非常基本的问题:我使用 distutils 和命令“build_ext --inplace”编译了几个模块。当我对这些模块之一进行更改时,重复“build_ext --inplace”会导致错误:

致命错误 LNK1104:无法打开文件 'C:\Users...\PycharmProjects...pyd'

当我关闭 PyCharm 并重新启动它时,一切正常 - 似乎无法删除当前文件,因为它们仍在使用中,除非我重新启动一切。因此,我想知道是否有办法避免重新启动并丢失内存中的所有对象?

最好的,T

0 投票
2 回答
7085 浏览

python - Cython:如何在没有 GIL 的情况下打印

我应该如何print在没有 gil 的 Cython 函数中使用?例如:

编译时出现此错误:

我知道如何使用 C 库而不是它们的等效 Python(math例如这里的库),但我找不到类似的print.

0 投票
1 回答
966 浏览

python - 编译 Cython 文件时出错:word2vec_inner.pyx:1:0: 'TWE-1.gensim.models.word2vec_inner' 不是有效的模块名称

安装程序.py

错误:

我已经为 Python 2.7 和 cython 安装了 Microsoft Visual C++ 编译器,但它无法编译。总是出现这个问题。如何解决这个问题呢?非常感谢!

0 投票
1 回答
933 浏览

c - 链接:致命错误 LNK1104:无法打开文件 'C:\Users\hp\.pyxbld\lib.win32-2.7\gensim\models\word2vec_inner.pyd'

我运行 TWE 模型的源代码。我需要编译python的C扩展。我已经为 Python 2.7 和 Cython 安装了 Microsoft Visual C++ 编译器。

首先,我需要运行 TWE/train.py:

二、TWE/gensim/models/wor2vec.py:

第三,我已经用 setup.py 编译了 TWE/gensim/models/word2vec_inner.pyx:

通过使用命令“python setup.py install”,我已经编译了 word2vec_inner.pyx。但出现以下错误:

我检查了 .pyx 文件是否已正确编译并且还安装了 cython。总之,它无法从 gensim/models/word2vec_inner 或 gensim_addons/models/word2vec_inner 导入 train_sentence_sg、train_sentence_cbow、FAST_VERSION、train_sentence_topic。所以就出现了这些问题。但为什么?我已经在两个方向上正确编译了 .pyx 文件。任何人都可以帮助我吗?这个问题困扰了我好几天。请帮帮我,谢谢!

0 投票
0 回答
1440 浏览

python - cythonize 动态模块未定义模块导出功能

现在我有一个 hello.so 文件以及其他文件(hello.pyx、hello.c)

然后当我尝试导入函数时:

我知道之前有人问过这个问题(下面的链接),但似乎解决方案是运行我已经在做的 python3,所以我不知道如何解决我的问题 Cython 编译错误:动态模块未定义模块导出功能

我应该添加我正在使用的 cythonize 版本: $ cython --version Cython 版本 0.24

0 投票
2 回答
1624 浏览

python - Cython 与 C++ | 编译错误(未找到 C++ 头文件)| 苹果系统

我正在尝试在 macOS 中使用 Cython 实现一个非常简单的 C++ 代码。这是我的 C++ 代码的标头(它是一个名为cs_test.h

这是我的 C++ 代码(文件名cs_test.cpp::

这是我的pyx代码(文件名simulate.pyx:)

最后,这是我的设置代码 ( setup.py)

所有上述文件都在同一个文件夹中。我setup.py使用以下命令运行:

而且,我收到以下错误消息:

simulate.pyx中,即使我将行替换为cdef extern from "./cauchy.h" nogil:cdef extern from "cauchy.h" nogil:我仍然会收到相同的错误消息。我了解有关使用的错误消息gcc可能是因为我正在使用 macOS。但是,我不知道如何让代码知道使用clang++c++代替。

我在这里做错了什么?我将非常感谢您的帮助。

0 投票
2 回答
1658 浏览

python - 在 Cython 中将复杂的 numpy 数组传递给 C++

我想 Cythonizepyx脚本的一部分,其中涉及使用复数的 numpy 数组。python 脚本的相关部分如下所示:

在我的工作中NQM是带有复数条目的 numpy 数组。

具体来说,我想将矩阵转移到代码中并N在.QC++C++

虽然我知道使用指向C++脚本的指针传输实值 numpy 数组的方法,然后使用 cython,但我对如何处理具有复杂值的 numpy 数组感到有些困惑。

这就是我试图将数组从现在转移pyxC++现在的方式。

这是我的 C++ 代码:

当我使用 cython 编译它时,出现以下错误

我会很感激在这里得到一些帮助。

0 投票
2 回答
2625 浏览

python - 如何为多个 Python 版本和平台构建编译模块

我为自己的流程构建了一个 Python 3 模块。

我使用 cython 来编译和包装 C++ 源代码。

我有一台带有 Python 3.4 的 Linux (Debian Jessie) 机器,所以 cythonize 让我成为 aProcessing.cpython-34m.so并将其复制到/usr/local/lib/python3.4/dist-packages.

但是当我在另一台具有 python3.5 的机器上使用它时,我必须重新编译所有内容。

如何从我的机器上为所有 Python 3 版本和多个平台构建 Linux 或 pip 包(这里只有 Jessie 和 Stretch,它们可能非常接近,实际上是相等的)?最好不必在我的机器上安装所有版本的 Python 3。

这是我用于 cythonization 的 setup.py 文件:

谢谢。