我开始摆弄PyQt,并从pyqt白皮书示例应用程序(pastebin)制作了一个“漂亮”的脚本
它在Windows和Linux中完美运行(两者都安装了qt环境)。
现在我的问题是:因为我正在尝试使用Qt,因为它是编译的(至少是纯旧的基于C ++的Qt),我如何编译一些.exe文件在Windows上运行它,或者是Linux的独立可执行文件。
关键是我希望编译程序,因为速度和可移植性,而不是从源解释,这需要在任何机器上进行先前的设置。例如,其中一个目标是通过电子邮件向不是程序员的同事发送小型gui脚本。
答案 0 :(得分:38)
如果您想完全创建一个独立的可执行文件,可以试试这个:http://www.pyinstaller.org/。我觉得创建一个独立的可执行文件比cx_freeze或py2exe更好(根据我的经验)。并且易于使用(网站提供完整文档)。
更新: 作为来自@SoursopTree和@LectureMaker的最新信息,它现在支持python版本3.3 - 3.6。
更新:如果要创建完全独立的.exe,则传递 - onefile 参数。例如:
pyinstaller.exe --onefile --windowed app.py
更新:图书馆作者声称您可以创建跨平台桌面应用程序的另一个有趣的库。值得尝试https://build-system.fman.io/
答案 1 :(得分:13)
花了好几周时间并尝试了所有替代方案 - PyInstaller,py2exe,cx_freeze,...... - 我创建了自己的库:https://build-system.fman.io/。它基于PyInstaller,但解决了许多常见的痛点。它还允许您在Windows,Mac和Linux上创建本机安装程序。
答案 2 :(得分:4)
您可能需要查看cx_freeze。它声称创建了“跨平台的可执行文件,应该可以在Python本身可以使用的任何平台上运行。”
我在探索使用PyQt的moneyGuru包时遇到过它。我将moneyguru.exe文件下载到我的Windows XP系统,执行它,它在Python 3.2上工作正常。
您可以从here克隆hg repo以查看它是如何完成的。
答案 3 :(得分:1)
因为我正在尝试使用Qt,因为它已经编译了
你使用Python打败了这个好处。虽然其他答案介绍了分发Python代码的选项,而不需要用户自己安装Python,但Python本来是一种解释型语言,因此每个选项都有缺点(例如速度,程序大小,兼容性,等等...)。他们可能会或可能不会对你造成交易。
您还有两个选择:
答案 4 :(得分:0)
有一个名为Py2EXE的模块,它将完全按照您的意愿执行。它会将脚本转换为.exe文件以在Windows上运行。我不确定linux,但我打赌那里有一个模块。 py2exe.com
答案 5 :(得分:0)
我正在使用pyinstaller
pip install pyinstaller
我不知道,但是pyinstaller不会附加sip.pyd。因此,您需要一个 PyQt5 \ sip.pyd 。我建议使用漂亮的Windows样式 qwindowvistastyle.dll 。
将 build.cmd 文件设置为:
pyinstaller --onefile --clean ^
--add-binary="C:\Users\Quazer\.virtualenv\pyqt5-36\Lib\site-packages\PyQt5\sip.pyd;PyQt5" ^
--add-binary="C:\Users\Quazer\.virtualenv\pyqt5-36\Lib\site-packages\PyQt5\Qt\plugins\styles\qwindowsvistastyle.dll;PyQt5\Qt\plugins\styles" ^
.\main.py
^
-命令文件(.cmd,.bat)中的新行