【问题标题】:Stackless Python and PyQt无堆栈 Python 和 PyQt
【发布时间】:2010-12-17 12:21:20
【问题描述】:

您对 Stackless Python 和 PyQt 有哪些体验?

如果有人解决我会很高兴的问题:

  1. 为 Stackless 编译 PyQt:是否需要专门为 Stackless 编译 PyQt?编译顺利吗?绑定等问题。

  2. 稳定性:任何意外的崩溃、冻结、暂停和其他异常情况?

  3. 内存管理:内存泄漏的任何提示。 Stackless/Plain Vanilla PyQt 应用程序所需的 RAM 比较

  4. 软件工程赋能:Stackless-powered PyQt 应用程序的控制流模型的简短概述

  5. 经验教训:任何痛苦的教训,要避免的陷阱,要解决的问题,您可能遇到过

快乐

【问题讨论】:

    标签: python pyqt pyqt4 stackless python-stackless


    【解决方案1】:

    几个月前我尝试过这条路,但觉得不值得。

    我能够针对无堆栈版本的 Python 运行 PyQt 的二进制安装(在 Windows 上),但我发现我必须手动进入并更改一些文件。我收到一条错误消息(对不起,我忘记了它是什么),并且谷歌搜索导致了几年前的解决方案。较新的代码没有包含旧的修复,因此更改并不太难,而且(如果我没记错的话)它是在 python 中,所以不需要重新编译。

    但这对我来说是一个交易破坏者。 Qt 更新定期发布,PyQt 更新也是如此,我不想不断地修复代码。 Stackless 和 PyQt 根本没有一起使用,无法彻底检查。我发现难以调试问题的风险非常高。鉴于 stackless 的作者已经转向 PyPy,这一点尤其正确。让我提前道歉 - 我希望我有我为作者停止开发 stackless python 的参考资料以及我必须修复的错误的更多细节 - 我没想到会在 Stack Overflow 上重复细节。

    所以我选择在普通 Python 上运行 PyQt,而不是无堆栈。

    顺便说一句,我还认为将信号/插槽与无堆栈代码混合会令人困惑,因为它们是解决多线程问题的完全不同的方法。

    祝你好运!

    【讨论】:

      【解决方案2】:

      如果您因为速度优化而对所有这些感兴趣:

      您可能想查看Unladen Swallow (Wikipedia here)。谷歌(因为 YouTube 是 100% Python)正在为 Python 开发一个 JIT 编译器,它将使其速度提高 5-10 倍(使其比当前的虚拟机更接近 Java 速度)。最好的部分是它将适用于所有现有的 Python 代码,这意味着您不必担心与其他 Python 优化项目相关的所有问题。

      我希望,如果您正在开发一个足够大的项目以保证需要在低级别进行优化,那么您可以使用普通 Python 进行开发,然后在 Unladen Swallow 出现时更换当前的 VM生产。

      【讨论】:

      • 感谢您的回复。我想使用 Stackless Python,因为它的控制流模型非常适合我的项目。对于这个项目,我将优化研发速度放在比运行时速度更高的优先级(我预测 Stackless 也会加快运行时)
      • 是的,我听说有一点(5-10% 或更多)。
      猜你喜欢
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      • 2013-08-08
      • 2021-12-08
      • 2023-03-20
      • 2023-03-16
      相关资源
      最近更新 更多