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

如果人们解决以下问题,我会很高兴:

  1. Stackless 的 PyQt 编译:PyQt 是否需要专门针对 Stackless 进行编译?编译顺利吗?绑定问题等

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

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

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

  5. 得到教训:您可能经历过的任何惨痛教训、需要避免的陷阱、需要解决的问题

要开心

有帮助吗?

解决方案

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

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

但这对我来说是一个破坏性的事情。Qt 更新定期发布,PyQt 更新也是如此,我不想不断修复代码。Stackless 和 PyQt 根本没有充分结合使用,无法进行彻底检查。我发现难以调试问题的风险相当高。鉴于 stackless 的作者已经转向 PyPy,这一点尤其正确。让我提前道歉 - 我希望我能找到作者停止在 stackless python 上进行开发的参考资料,以及有关我必须修复的错误的更多详细信息 - 我没想到会在 Stack Overflow 上重复这些详细信息。

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

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

祝你好运!

其他提示

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top