Pyqtdeploy Complie Win32 Version PyQtWin32静态编译记录

原创 2015年12月25日 18:32:02

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 文件了

这里写图片描述

使用pyqtdeploy 发布你的 pyqt5 应用程序(android)

  • 2016年04月09日 13:31
  • 989KB
  • 下载

Pyqtdeploy Android PyQtForAndroid 编译记录【更新中

PyqtDeploy 部署 Android 记录第一次接触PyQt还两年前,写了许多应用后对于PyQt的简单直接很喜欢,用PyQt写Android听起来就好好玩,之前就有过PyQt4 For Andr...
  • harry159821
  • harry159821
  • 2015年09月08日 19:52
  • 3613

PyQt5应用与实践

https://www.cnblogs.com/skynet/p/4229556.html 个典型的GUI应用程序可以抽象为:主界面(菜单栏、工具栏、状态栏、内容区域),二级界面(模态、非模态),信...
  • liufengl138
  • liufengl138
  • 2017年11月18日 12:57
  • 114

QT5静态编译教程,主要针对vs2012

QT5静态编译教程,主要针对vs2012 转自 http://www.qtcn.org/bbs/read-htm-tid-53236.html QT5,VS2012静态编译,所有的库...
  • skykingf
  • skykingf
  • 2013年05月22日 20:37
  • 16436

静态编译与动态编译的区别

静态编译与动态编译的区别   动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系...
  • houyahuiyu
  • houyahuiyu
  • 2016年11月30日 21:38
  • 1422

linux gcc 静态编译和动态编译

一.编译和链接选项: 第一步:预编译。 gcc -E hello.c -o hello.i -E参数: GCC在完成预处理后,停止编译过程。 预处理的宏定义展开到 hello.i中。...
  • gwzz1228
  • gwzz1228
  • 2013年11月21日 16:28
  • 7494

PyQt5程序生成的APP制作成DMG

Java各种类型之间的转换方法
  • wudj810818
  • wudj810818
  • 2017年04月24日 19:05
  • 686

静态编译、动态编译、静态链接库和动态链接库理解

转自http://www.cnblogs.com/lisuyun/p/3953589.html 1.静态编译:编译器在编译可执行文件时,把需要用到的对应动态链接库(.so或.ilb)中的部分提取出来,...
  • qingkongyeyue
  • qingkongyeyue
  • 2016年09月23日 20:11
  • 992

VS开发中的静态编译

针对现象 1、 运行程序提示“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题” 2、 程序启动即发生异常,或者没反应。(具体现象跟系统设置有关) 3、 客户端发布必须连带...
  • EVILsupermp5
  • EVILsupermp5
  • 2014年02月19日 12:47
  • 1036

[opencv]OpenCV项目的动态编译和静态编译

1.Dll(Dynamic Link Library)和Lib文件 2.动态编译与静态编译的区别 3.opencv项目的动态编译 4.opencv项目的静态编译 参考链接...
  • kingcooper
  • kingcooper
  • 2016年03月16日 15:53
  • 3355
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Pyqtdeploy Complie Win32 Version PyQtWin32静态编译记录
举报原因:
原因补充:

(最多只允许输入30个字)