问题标签 [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 回答
4768 浏览

python-3.x - 导入错误未定义符号(python中的C++模块)ZTINSt8ios_base7failureB5cxx11E

我知道网站上有很多类似的问题,但我找不到我的问题的答案。

我正在用 Cython 包装 C++ 类,以便将它们与 Python3 一起使用。使用 a 构建外部模块后setup.py,当我运行 python 程序时,出现以下错误:

from "name of.pyx file" import "name of the class to import" Import error: /home/.../filename.so: undefined symbol: _ZTINSt8ios_base7failureB5cxx11E.

我在 Ubuntu 16.04 上,我使用命令行从终端构建扩展python3 setup.py build_ext --inplace,然后.py从终端或 Anaconda 中的 Spyder 运行(在这两种情况下都出现错误。)

从我读到的错误可能来自 cython 编译,因为我没有链接一些库。这是真的?如果是的话,有人可以解释我该怎么做吗?

我让你在这里setup.py,在评论中我尝试了所有不同的设置。

安装程序.py

0 投票
1 回答
1301 浏览

python - tox, cython 和 fasttext

我正在制作一个tox测试和使用fasttextPython 包的项目。fasttext使用赛通。我在 tox 环境设置过程中遇到了 cython 错误:ImportError: No module named Cython.Build.

如果我让 tox 使用站点包,我可以让它工作。

我创建了一个产生相同错误消息的小测试:

tox.ini

setup.py

我从 tox 得到的错误是:

我发现pip' 子依赖项的安装顺序存在问题,例如,请参阅https://github.com/h5py/h5py/issues/535 ,但我的印象是这个问题已经解决。

我在setup_requires 中看到了 Cython 的解决方法?但我看不到我的模块可以使用该解决方法。

这是一个fasttext问题吗?或者我缺少一些设置?

0 投票
0 回答
701 浏览

python - 在 Cython 中附加和切片向量

我最近在 Cython 中使用了相当多的 C++ 向量,它运行得相当好。但是,我想知道是否有一种有效的方法可以通过 Cython 从向量中获取切片,以及如何使用这些向量切片来扩展另一个向量?例如,如果我做这样的事情:

我如何像在 C++ 中一样在一次传递中使用 v1 的全部内容扩展向量 v2,以及如何从 v1 的子集切片中获取元素?

0 投票
1 回答
163 浏览

linux - 使用 Cython 编译后使用 .connect 时出现 PyQt4 分段错误

我一直在开发一个 Qt GUI,并考虑用 Cython 编译它,因为有一些 OpenGL+Trimesh 位会真正受益于 Cython。

该项目可以编译,但似乎破坏了“.connect”功能,因为它在尝试定义它时会立即出现分段错误。

例如这一行:

将与其他所有“.connect”一起出现分段错误。

我正在编译项目并将其作为单独脚本中的模块调用。当一切都是 Python 时,它会正常工作。GUI 弹出并加载所有内容。但是在编译后,程序会在 '.connect' 上出现段错误,如前所述。

这是 Cython 的已知问题吗?Cython 文档说它与 PyQt 一起工作得很好,所以它导致这个段错误似乎很奇怪。

0 投票
1 回答
2054 浏览

c++ - 如何将字符串从 Python3 传递给 cythonized C++ 函数

我试图了解如何在 Python3 和 cythonized C++ 函数之间传递字符串值。但是我无法使用 Cython 构建库。

特别是我不明白如何在source.pyx. 使用 int 类型它可以正常工作。

我在使用 clang 构建过程中遇到的错误如下:

source.pyx的如下:

source.cpp的是:

0 投票
2 回答
1304 浏览

python - Cython 编译将文本附加到文件名,如何摆脱它?

我正在 Ubuntu 平台上使用 cython。一切都很好,除了有一件事让我烦恼。将 cython 项目编译为 .so 文件时,.pyx 文件的文件名会附加“cpython-36m-x86_64-linux-gnu”。例如,如果我构建“helloworld.pyx”,则生成的 .so 文件称为:“helloworld.cpython-36m-x86_64-linux-gnu.so”。然而,我只希望它被称为“helloworld.so”。

我认为答案会很简单,所以我开始在谷歌上搜索,即使在 30 分钟后我也找不到任何关于该主题的内容。有人有什么主意吗?

这是我的 .pyx 文件:

setup.py 文件:

构建文件:

0 投票
1 回答
38 浏览

c++ - Cython 等效于“使用 Time = cppClassDefinition"

我正在尝试包装一个 cpp 应用程序,并且源代码在头文件中包含以下内容

什么是 Cython 等价物?

我试过了

没有成功。虽然 Cython 在这一步没有抱怨,但当我尝试使用该函数时它会引发编译错误setDefaultTime(1.0)。错误状态“无法将类型 'double' 分配给 'Time'。然而,在 CPP 代码中,这似乎工作正常。

我也试过

这也失败了。有什么建议么?这可以使用 Cython 吗?

0 投票
1 回答
245 浏览

python - 如何优化这个 cython 代码?我发现速度只提高了 3%

这是我的 fun.pyx 文件

这是我的 test.py 文件

但是运行这个之后,我发现与python程序相比,速度只提高了3%。如何优化这个程序?任何建议都会有所帮助。提前致谢。

0 投票
0 回答
751 浏览

pointers - 如何在 Cython 中正确释放指针?

我想释放分配的内存,该变量是一个指向指针的变量(或“双指针”——不要与指向双数据类型的指针混淆。)

假设指向指针的指针是**ptr并且(为简单起见)它是一个 10x10 的整数数组。按照文档,我看到一种分配空间的方法如下。

该文档没有明确提到释放指针的正确方法是什么。根据我在 C 中编程的经验,我猜这应该是推荐的方式。但是,空闲内存语法似乎无法正常工作,因为当我编译(使用 distutils.core.setup)时,它似乎给了我一个熟悉的 gcc 错误——表明我正在尝试释放未分配的内存。

这个问题非常类似于与 C 指针有关的这个问题的 Cython 类似物。

0 投票
2 回答
1051 浏览

python - 通过pickle保存cython扩展

我有一个这样写的类或扩展类型cython

cython我使用这个文件(它的名字是som.pyx)创建了一个python模块distutils,然后我将它导入python并用它来创建和训练一个模型,但是当我想使用pickle它保存我的模型时,我会遇到这个错误:

类型错误:无法腌制 som.Self_Organized_Map 对象

泡菜或我的代码有什么问题?泡菜不能保存扩展对象吗?