问题标签 [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 投票
1 回答
103 浏览

cython - py3.6.4 下的 cythonize 无法将 'basestring' 对象隐式转换为字节。这不是便携式的

此代码片段在 python 3.6.4 下运行良好,但在 .pyx 文件中存在时会触发可移植性问题。我可以使用一些帮助来确定如何在 Cython 中最好地格式化 python 3.5.1+ 字节。

编辑:根据 DavidW 的评论改变这一点。

以下在 ipython 下的 python 3.6.4 中工作

正如所希望的那样:

使用 cython 对代码的唯一更改是函数名称、声明的返回类型和声明两个变量。

其次是:

结果是:

-djv

0 投票
1 回答
636 浏览

cython - Cython 无法从 cimported 模块中找到声明的函数

系统:Mac OS 10.12.6。Python:来自 Anconda3 的 Python 3.5.2。赛通==0.28

我正在尝试为静态 c++ 库编写包装器。这是头文件的一部分。

这是pxdCython 文件的一部分。

pyx为测试编写了一个简单的文件。

安装文件

运行python setup.py build_ext --inplace

PS:我已经成功地用 Xcode 完成了这个,只有 c 代码。

0 投票
1 回答
555 浏览

macos - 如何在 Cython 中链接 Mac OS 框架

如何在 Cython 中链接 Mac OS 框架?

我失败了

错误

将完整路径添加到框架也不起作用。

0 投票
1 回答
176 浏览

python - Cython c++ 模块,构造函数多次调用

我正在尝试使用 Cython 将我的 c++ 类包装到 python 中。我能够创建so文件并在python中导入,但是我的c++类的构造函数被多次调用。

这是我到目前为止所做的。
文件:DBReader.h

文件:DBReader.cxx

文件:dbreader.pyx

文件:setup.py

运行后setup.py build_ext --inplace创建 dbreader.so 文件。而且我可以在python中导入。但正如您在下面看到的:Hello 被打印三次。

0 投票
1 回答
229 浏览

python - 如何使 Python 模块可共享?

我们有一个基于 python 的模块,我们希望通过创建一个 linux 系统可以理解的编译副本(即.so文件)来分发给我们的客户

我们已经评估了 cython,它很容易做到这一点,但我们看到它创建的 .so 文件与 .pyx/.py 文件一样多,但我们想为完整的包创建一个 uber .so 文件。从某种意义上说,我们希望巧妙地做到这一点,如果我们将来向其他模块添加依赖项,uber 编译的文件应该具有所有依赖项。

有什么建议,我们如何才能巧妙地做到这一点?

0 投票
1 回答
1897 浏览

python-3.x - ImportError:没有名为 util 的模块

我的目录结构是这样的:

这里,util.pyd 和 high.pyd 文件在 cython 中。

此外,util.pyd 是 high.pyd 的父级。

这意味着它使用 util.pyd 类作为其类的对象。然后 main_file.py 从 util.pyd 和 high.pyd 中导入类。

我面临的问题是:

在 main_file.py 中,从 Util.pyd 中正确导入了 class,但是从 high.pyd 中导入 class,却找不到 util。

0 投票
1 回答
471 浏览

python - Returning Object Pointer: 'Cannot convert 'Coordinate *' to Python object'

I'm currently trying to cythonize my c++ classes to be usabe in python and I startet with a simple class of mine, but I'm stuck with returning a pointer. My apttempt to solve this problem was to add a copy-constructor and to return the Python version of the C++ class but without any success.

I get the following error:

here are my files

coordinate.h

coordinate.cpp

coordinate.pxy

0 投票
0 回答
45 浏览

cython - 如何在 Cython 的另一个进程中授予对对象的只读(非复制)访问权限?

如何将一个进程中的对象的只读(非复制)访问权限授予另一个进程?

例如,在下图中,如何授予Process 2Process 3访问 中的TasksProcess 1

Process 1是唯一一个将写入类的进程,Tasks维护关于哪些任务已被处理等的任何状态并不重要。

我认为这个任务可能涉及使用指针?Cython 的文档简要介绍了并行性。

如何授予对其中的类Process 2Process 3只读、非复制访问权限?TasksProcess 1

0 投票
0 回答
235 浏览

cython - 如何使用 Cython(而不是与 Python 交互)在另一个进程中运行函数?[包含 Python 代码示例]

在 cython 中复制以下行为的最佳方法是什么(无需与 Python 交互)?假设将传递给新进程的函数是一个cdef函数。

如何使用 Cython(不与 Python 交互)在另一个进程中运行函数?

0 投票
2 回答
352 浏览

cython - Cythonize 函数在扩展名中包含根文件夹

问题

我有一个看起来像这样的项目结构:

setup.py用于cythonize编译.pyx文件的用途:

它主要工作,但是当我创建一个二进制轮子(使用python setup.py build_ext bdist_wheel clean --all)时,我的轮子文件具有以下结构:

这不好,因为我希望在mylib根文件夹中也有已编译的 cython 模块。

可能的原因

稍微调查一下,问题似乎出在从cythonize()函数生成的扩展名上,这些扩展名都以 开头t_src,例如:

解决方法

如果我实际上在cythonize()函数之前运行该setup()函数并手动从扩展名中删除"t_src."字符串,那么我的轮子里面mylib的所有东西都符合预期:

这是某种预期的行为还是我做错了什么?这可能是什么原因造成的?现在这个解决方法可以,但我想知道解决这个问题的正确方法。

谢谢!