无栈Python和PyQt

4

你在使用Stackless Python和PyQt方面有什么经验?

以下是需要解决的问题:

  1. 为Stackless编译PyQt:PyQt是否需要特别为Stackless编译?编译过程顺利吗?是否存在绑定等问题。

  2. 稳定性:是否出现意外崩溃、冻结、暂停和其他奇怪的现象?

  3. 内存管理:是否存在内存泄漏的迹象?Stackless/普通Vanilla PyQt应用程序所需的RAM比较。

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

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

保持愉快

2个回答

0

如果您对速度优化感兴趣:

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

我预计,如果您正在开发足够大的项目以需要在低级别上进行优化,则可以在普通Python中进行开发,然后在Unladen Swallow投入生产时切换出当前VM。


谢谢回复。我想使用 Stackless Python,因为它的控制流模型与我的项目很相配。对于这个项目,我将更高的优先级放在优化研发速度上,而不是运行时速度(我预计 Stackless 也会加速运行时)。 - random guy
是的,我听说它会有一点影响(5-10%或更多)。 - orokusaki

0

我几个月前曾尝试过这条路,但最终决定不值得花费这些精力。

我能够在 Windows 上运行 PyQt 的二进制安装包,并与 Stackless 版本的 Python 配合使用,但我发现我必须手动更改一些文件。我遇到了一个错误消息(抱歉,我忘记了是什么),并通过谷歌搜索找到了几年前的解决方案。新代码没有包含旧的修复程序,所以更改并不太困难,而且(如果我没记错的话)它是在 Python 中完成的,因此不需要重新编译。

但对我来说,这是一个无法接受的问题。Qt 和 PyQt 的更新经常发布,我不想不断修复代码。Stackless 和 PyQt 并不经常一起使用,无法彻底检查。我发现难以调试的风险非常高。特别是考虑到 Stackless 的作者已经转向 PyPy。提前道歉 - 我希望我有关于作者停止开发 Stackless Python 和我必须修复的错误的更多详细信息和参考资料 - 我没有预料到要在 Stack Overflow 上重复这些细节。

因此,我选择在普通的 Python 上运行 PyQt,而不是在 Stackless 上运行。

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

祝好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接