【发布时间】:2012-12-01 19:02:10
【问题描述】:
我很好奇,过去一个小时一直在阅读有关使用 Python 进行 GUI 开发的文章。在阅读了 wxPython、PyQt、Nokia 的 Qt Python 绑定以及 Tkinter 的文档后,我想到了一个问题。
当我使用 Python 创建控制台应用程序时,它使用嵌入式 Python 解释器运行(我假设在我的情况下通常是 cpython)。
所以我想知道,这些“小部件工具包”是什么情况?
-
Python 代码是如何执行的以及是什么解释它(或执行它)?
-
我的 Python 代码的哪一部分是使用 Python 解释的 口译员?
-
或者 Python 代码是否经过词法分析,然后由小部件的 然后解释和执行(或在构建期间编译)的工具包?
我期待通过 Python 解释器了解与 Python 应用程序(更易于理解)的解释相比,后台发生了什么。
谢谢。
PS。无论哪个天才认为这个问题应该被关闭; 很多人想知道外部库和系统的内部结构。尤其是那些不像看起来那么简单的东西。目前在 SE 上没有任何问题可以解释这一点。
【问题讨论】:
-
“嵌入”是指系统捆绑的python吗?
-
是和不是。基本上我的意思是系统上已经存在的解释器在系统范围内可用。我使用这个词是为了不与这些小部件工具包可能安装的解释器混淆,以供其执行机制专用。
-
没有奇迹发生。 GUI 工具包作为库链接到解释器中。
-
@larsmans,阅读 SO 上的帖子,我看到了 cmets 和关于无法与小部件共享纯 Python 代码结果的投诉(在 Qt 绑定的情况下)。如果所有代码库都简单地链接到解释器,情况就不应该如此。而且我不明白这些通常使用 C/C++ 开发的工具包是如何与 Python 相关联的;因此我的问题的原因。
-
@Phil:它们作为动态库链接,使用
dlopen或在 Windows 上传递的内容。可能是某些工具包在 Windows 上安装了它自己的 Python 副本,但这只是一个普通的 Python 解释器,就像您在C:\Python27(或任何地方)中安装的解释器一样。
标签: python user-interface wxpython tkinter pyside