【发布时间】:2015-08-26 12:35:25
【问题描述】:
我知道 C 或 C++ 中静态链接和动态链接之间的区别。但它在 Python 中意味着什么?由于它只是一个解释器,并且只有一种样式的模块导入机制,这有什么意义呢?
如果我通过排除特定库来使用 cx_freeze 冻结我的 Python 应用程序,这是一种动态链接吗?因为,用户必须自己下载并安装该库才能运行我的应用程序。
实际上我的问题是,我正在使用 PySide 库(带有 LGPL v2.1)来开发 Python GUI 应用程序。图书馆说我应该动态链接到图书馆以遵守他们的法律条款(与 Qt 相同)。在这种情况下,如何动态链接到 PySide?
【问题讨论】:
-
我认为您通常使用 PySide 的任何方式都算作动态链接,即使它是同一下载的一部分。如果您构建单个文件 exe(cx_Freeze 无论如何都不会这样做),有些人可能会称其为静态链接,但我认为大多数人仍然不会。继续使用它 - 人们可以使用它来构建 Python 应用程序,所以如果你正在这样做,你可能没问题。
-
谢谢托马斯。你的意思是,即使我构建了单个文件 exe(使用 pyinstaller 或任何东西),它仍然是动态链接吗?如果那时我可以继续使用一个简单的自述文件来说明在哪里下载 pyside 源。是吗?
-
我想大多数人会说这仍然是动态链接,你提出的应该没问题。如果您担心,请向PySide mailing list 询问——重要的是他们的解释。但如果他们认为这还不够好,我会感到非常惊讶。
-
谢谢托马斯。我将清除那些有 pyside 邮件列表的人并在此处回复。它对大多数 Python 开发者都有用。
标签: python qt pyside cx-freeze