Pyqtdeploy Complie Win32 Version PyQtWin32静态编译记录

3 篇文章 1 订阅
3 篇文章 0 订阅

PyQtWin32静态编译记录 PyQt5篇

上一篇中记录了 PyQtDeploy 给 Android-32 编译的过程,虽然没有成功,这次我来玩一下 Windows 平台,人懒上次没写

编译出来的最小程序未压缩为 9 MB,Upx压缩后 1.8MB

PyQtDeploy对于 QAxContainer QtLocation QtPositioning 以及 _QOpenGLFunctions_ES2 支持貌似还有问题,编译过程删除了

编译后的SYSROOT打包:http://pan.baidu.com/s/1mh3dYhM

相关参考资料

https://pypi.python.org/pypi/pyqtdeploy/
http://pyqt.sourceforge.net/Docs/pyqtdeploy/tutorial.html

相关下载点

http://www.qt.io/download-open-source/
https://riverbankcomputing.com/software/sip/download
https://riverbankcomputing.com/software/pyqt/download5
https://www.python.org/downloads/source/

编译环境

1.Windows 10 Pro
2.Qt5.5.1 Python3.4.0 PyQt-gpl-5.5 sip-4.17 pyqtdeploy1.1 vs2010

核心步骤
  1. 静态编译Qt5.5.0 Python3.4.0 PyQt-gpl-5.5 sip-4.16.9 的 Win-32 平台版本 http://pyqt.sourceforge.net/Docs/pyqtdeploy/static_builds.html
  2. 编译 Qt工程

具体操作

  1. 安装准备工作

    安装以下
    X16-60997VS2010UltimTrialCHS.iso
    qt-opensource-windows-x86-msvc2010-5.5.1.exe
    Python-3.4.0.msi + pip
    PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe
  2. 下载源码

    https://www.python.org/ftp/python/3.4.0/Python-3.4.0.tar.xz
    http://sourceforge.net/projects/pyqt/files/sip/sip-4.17/sip-4.17.zip
    http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.5.1/PyQt-gpl-5.5.1.zip
  3. 配置环境变量

    将下列路径添加进入系统环境变量,重启
    C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
    C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
    D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include
    D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
    D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
    C:\Qt\Qt5.5.1\5.5\msvc2010\bin
    D:\Python34
    D:\Python34\Scripts

    这里写图片描述

     CMD 测试 命令配置情况:
    nmake -help
    vcvars32
    qmake --version
    python --version
    pip --version

    这里写图片描述

  4. PIP 安装 PyQtDeploy

    pip install pyqtdeploy
  5. 静态编译 Python
    选择一个文件夹作为我们的工作文件夹,这里使用 D:\Qt\SYSROOT
    将下载好的源码文件放置在 D:\Qt\SYSROOT\src 内并解压

    CMD 操作
    D:
    D:\Qt\SYSROOT\src\Python-3.4.0
    pyqtdeploycli --package python --target win-32 configure
    qmake SYSROOT=D:\Qt\SYSROOT
    vcvars32
    nmake
    nmake install

    如果出现 io.h 未找到的错误,则在生成的 python.pro 里面加入以下两行,并从 qmake 继续编译

    INCLUDEPATH += "D:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include"
    INCLUDEPATH += "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Include"

    这里写图片描述

  6. 静态编译 sip

    CMD 操作
    D:
    cd D:\Qt\SYSROOT\src\sip-4.17
    pyqtdeploycli --package sip --target win-32 configure
    python configure.py --static --sysroot=D:/Qt/SYSROOT --no-tools --use-qmake --configuration=sip-win.cfg
    qmake
    vcvars32
    make
    make install
  7. 静态编译 PyQt5

    CMD 操作
    D:
    cd D:\Qt\SYSROOT\src\PyQt-gpl-5.5.1
    pyqtdeploycli --package pyqt5 --target win-32 configure

    此时编辑 pyqt5-win.cfg 可以裁剪配置去除无需编译的库
    这里删除了 QAxContainer QtLocation QtPositioning 以及 _QOpenGLFunctions_ES2 后编译 OK,时间会比较长

    [Qt 5.5]
    pyqt_modules = QtCore QtGui
        QtMultimedia QtMultimediaWidgets QtNetwork QtOpenGL
        QtPrintSupport QtQml QtQuick QtQuickWidgets
        QtSvg QtTest QtWebChannel QtWebSockets QtWidgets
        QtWinExtras QtXml QtXmlPatterns

    这里写图片描述

    继续编译
    vcvars32
    make
    make install
  8. PyQtDeploy生成Qt工程
    1.创建工程文件夹 D:\Qt\SYSROOT\project,创建pyqt代码PyQtDeployTest.py

from PyQt5 import QtWidgets,QtGui,QtCore
import sys

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QWidget()
    b = QtWidgets.QPushButton(w)
    b.setText("hello pyqtdeploy")
    w.show()
    app.exec_()
```
CMD 操作
pyqtdeploy PyQtDeployTest.pdy
```

程序及入口设置
包含的PyQt模块
Python标准库包含
各种路径配置
Build
10. 编译生成的Qt工程
上步骤生成的代码在 D:\Qt\SYSROOT\project\build
如果你给nmake重命名了可以在最后一栏里面选择一次性 make

CMD 操作
D:
cd D:\Qt\SYSROOT\project\build
qmake
vcvars32
nmake

然后你就得到了编译好的 exe 文件了

这里写图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值