Stackless Python和PyQt

时间:2009-11-17 15:52:58

标签: python pyqt pyqt4 stackless python-stackless

您对Stackless Python和PyQt有什么经验?

如果有人致辞,我会很高兴:

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

  2. 稳定性:任何意外的崩溃,冻结,停顿和其他奇怪的事情?

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

  4. 软件工程授权:Stackless-powered PyQt应用程序的控制流模型概述

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

  6. 快乐

2 个答案:

答案 0 :(得分:0)

如果您因为速度优化而对此感兴趣:

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

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

答案 1 :(得分:0)

几个月前,我试图沿着这条路走下去,并决定不值得努力。

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

但这对我来说是一个交易破坏者。 Qt更新定期发布,对PyQt的更新也是如此,我不想继续修复代码。 Stackless和PyQt根本没有被充分利用,无法彻底检查出来。我发现难以调试问题的风险很高。鉴于stackless的作者已经转向PyPy,这一点尤其如此。让我先提前道歉 - 我希望我找到了作者在无堆栈python上停止开发的参考资料以及我必须解决的错误的更多细节 - 我没想到会反复出现Stack Overflow的细节。

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

BTW,我还认为将无信号码混合信号/插槽会让人感到困惑,因为它们是解决多线程问题的完全不同的方法。

祝你好运!