【问题标题】:PyQt4 Segmentation Fault when using .connect after compiling with Cython使用 Cython 编译后使用 .connect 时出现 PyQt4 分段错误
【发布时间】:2017-03-06 02:12:29
【问题描述】:

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

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

例如这一行:

self.btn_geometry_autofit.clicked.connect(self.autofit)

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

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

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

【问题讨论】:

  • 我偶尔会看到在 Python 函数工作的情况下将 Cython 函数传递给 C/C++ 代码(包括 PyQt)的问题。如果您使用*args,我已经看到会产生段错误。但是,这看起来更像是一个错误报告而不是一个问题,因此生成一个最小示例并将其提交给the github page 可能更有用
  • 您尚未包含 Python、Cython、OS、x86/x64、C/C++ 编译器的版本
  • Python 2.7、最新的 Cython、Linux 或 Ubuntu(以使用 sudo apt 为准)、64 位、gcc 编译器(不确定版本但不太可能是古老的)

标签: linux python-2.7 pyqt4 cython cythonize


【解决方案1】:

我仍然不知道为什么会出现错误,但是可以通过将初始点击事件更改为QObject.connect(self.btn_geometry_autofit, SIGNAL("clicked()"), self.autofit) 来避免它。 它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多