一、安装运行环境

    Anaconda (这里包含了Qt Designer、PyUIC5、PyRCC5)

    PyCharm  (激活

    Pyinstaller (pip install pyinstaller 或者 pip3 install pyinstaller)

    PyQt5  (pip install pyqt5 或者 pip3 install pyqt5)

    Qt Designer:Qt设计师,设计界面

    PyUIC5:设计的界面转换成 xxx.py

    PyRCC5:资源文件转换成 xxx.py

    Pyinstaller:打包 xxx.py 为 xxx.exe


二、设置PyCharm

    File-->Setting-->External Tools-->+(添加)

    Name:QtDesigner

    Program:D:\ProgramData\Anaconda3\Library\bin\designer.exe (Anaconda安装目录)

    Working  directory:$FileDir$

    

PyQt调用unity 打包ab包 pyqt打包成apk_ico

再次添加

    Name:PyUIC

    Program:D:\ProgramData\Anaconda3\Library\bin\pyuic5.bat (Anaconda安装目录)

    Argument:$FileName$ -o $FileNameWithoutExtension$.py

    Working  directory:$FileDir$

    

PyQt调用unity 打包ab包 pyqt打包成apk_python_02

再次添加

    Name:PyRcc

    Program:D:\ProgramData\Anaconda3\Library\bin\pyrcc5.bat (Anaconda安装目录)

    Argument:$FileName$ -o $FileNameWithoutExtension$_rc.py

    Working  directory:$FileDir$

    

PyQt调用unity 打包ab包 pyqt打包成apk_PyQt调用unity 打包ab包_03

最终

    

PyQt调用unity 打包ab包 pyqt打包成apk_PyQt调用unity 打包ab包_04


三、打开Qt Designer

    PyCharm-->Tools-->External Tools-->QtDesigner


创建一个窗体


PyQt调用unity 打包ab包 pyqt打包成apk_python_05

设计一个窗体,用于演示

PyQt调用unity 打包ab包 pyqt打包成apk_Qt_06

将设计好的窗体另存为Login.ui并保存到工程目录,PyCharm-->Login.ui-->右键-->External Tools-->PyUIC

会在当前目录下生成一个Login.py的文件

PyQt调用unity 打包ab包 pyqt打包成apk_PyQt调用unity 打包ab包_07

新建一个 main.py 文件,将以下代码写入其中

#!/usr/bin/env python
# -*- coding:utf-8 -*-

'''
登陆窗口
'''

__author__ = 'YXQ'

import  sys
import Login
from PyQt5.QtWidgets import QApplication, QMainWindow

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWindow = QMainWindow()
    ui = Login.Ui_MainWindow()
    ui.setupUi(mainWindow)
    mainWindow.show()
    sys.exit(app.exec_())

运行 main.py 


PyQt调用unity 打包ab包 pyqt打包成apk_ico_08


四、打包成可执行文件 exe

    PyCharm-->Show in Explorer 打开文件所在目录

PyQt调用unity 打包ab包 pyqt打包成apk_Qt_09


在文件夹空白处按住 Shift-->鼠标右键-->在此处打开命令窗口

PyQt调用unity 打包ab包 pyqt打包成apk_PyQt调用unity 打包ab包_10


输入 pyinstaller -F -w main.py

PyQt调用unity 打包ab包 pyqt打包成apk_Qt_11


找到同目录下的 dist-->main.exe 运行看一下结果

五、完结

    附 pyinstaller 参数

-F , -onefile

  • : 指明该选项,将会生成一个总的exe文件,所有的文件都会被添加到这一个中。

-D, -onedir

  • : 产生一个目录来盛装用于分发的exe文件,也比较方便。

-K, -tk

  • : 在部署的时候,包含TCL/TK,这对于有图形界面的python文件比较的适用。

-a, -ascii

  • : 不包含编码,因为在支持Unicode的Python版本上默认包含所有的编码,这个选项基本上不怎么用得到。

-d, -debug

  • : 产生Debug版本的可执行文件。

-w, -windowed, -noconsole

  • : 适用Windows子系统执行,当exe文件运行的时候,不会出现命令行CMD窗口。(因为是windows子系统,所以只在windows平台下有效。)

-c, -nowindowed, -console

  • : 与上相反,出现CMD窗口,辅助用户操作。

-s, -strip

  • : 这个参考别人的话为“可执行文件和共享库将run through strip,注意Cygwin的strip往往使得普通的win32DLL无法使用”。

-X, -upx

  • : 压缩方式,如果有UPX安装,则会压缩源文件来执行。

-o DIR, -out=DIR

  • : 指定DIR作为exe的生成目录,如果未指定,默认为pyinstaller的解压目录,且会根据python文件创建出同名的目录来保存生成的exe文件。

-p, DIR, -path=DIR

  • : 设置导入的环境变量路径,windows下英文的分号分隔,也可以使用多个-p选项来设置导入多个路径(其实这个选项有点鸡肋,分发版的话基本上不怎么用得到)。

-icon=<FILE.ICO>

  • : 将file.ico添加为exe文件的图标(可以自定义,注意为ico文件,否则格式不正确的话会出错的)。

-icon = <FILE.EXE, N>

  • : 原理同上(只是把file.exe文件的第N个图标作为资源来使用,不怎么用得到)。