发布依赖于 C++ 库的 python 绑定的 python 可执行文件

Posted

技术标签:

【中文标题】发布依赖于 C++ 库的 python 绑定的 python 可执行文件【英文标题】:Release python executable with dependency on python bindings of a C++ library 【发布时间】:2015-12-05 12:12:40 【问题描述】:

我使用 Qt C++ 的 PyQt python 绑定来创建我的程序的 GUI。如果我要将程序作为一个简单的可执行文件分发/发布,最好适用于几个常见平台,我应该如何以“正确”的方式做到这一点?

目前 Qt 和 PyQt 已安装在我的环境中,但我不希望任何用户经历安装这些的过程。我希望我的程序是一个点击运行的解决方案。很难弄清楚 Qt C++ 库代码和 PyQt 将如何本地包含在我的项目中。

我对 python 程序版本还不是很熟悉。我注意到对于 python 来说,实际上并没有多少相当于 .jar 包的东西,而这正是我正在寻找的那种结果。目前我正在使用两个放在 lib 文件夹中的 python 库。这些库只是具有自己的 src 文件夹的 python 源。有没有什么方法可以用 PyQt 做同样的事情,而不必在用户环境中安装 Qt?

【问题讨论】:

pyqtdeploy 【参考方案1】:

如果您不介意可以查看您的源代码,那么我认为 cx_freeze 将是最好的选择,否则 nuitka 也将是一个选项,但这会隐藏所有内容。但是请记住,这取决于您的库的复杂程度以及您使用它的模块可能难以实现,但请尝试一下 :)

https://github.com/kayhayen/Nuitka

https://github.com/GreatFruitOmsk/cx_freeze

【讨论】:

以上是关于发布依赖于 C++ 库的 python 绑定的 python 可执行文件的主要内容,如果未能解决你的问题,请参考以下文章

SIP参考指南 - 介绍

Python 绑定:从 Python 调用 C 或 C++

将 C++ 与 Python 连接

Python绑定;调用 C 代码和性能

Python 绑定:从 Python 调用 C 或 C++

Python:在不依赖枕头库的情况下旋转图像?