pyQt5小程序和python打包

一、pyqt5

1.ui转py文件:

pyuic5 -o main.py mainwindow.ui

稍加观察一下这个main.py文件就可以察觉,其中只包含一个名叫Ui_MainWindow的类,类之外没有可以执行的代码,当然现在执行这个文件什么都不会发生。这时候需要对main.py添加一点代码使得设计好的UI能够出现在我们面前。

  • main.py文件已经自己引入了PyQt5库中的几个大类,QtCore, QtGui, QtWidgets;这不够,我们还需要引入sys库,所以添加:
import sys
  • 除次之外,我们需要在class之外添加一些代码,将类实例化,并且运行这个实例:
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

2.信号和槽连接

self.pushButton.clicked.connect(lambda :self.函数(参数1,参数2))

二、py转exe

1.pyinstaller

离线安装会有几个依赖包future、pefile、pywin32-ctypes,按顺序装完这三个再安装pyinstaller;

命令行执行:pyinstaller -Fw main.py

此处打包一个不显示dos窗口且在dist文件夹下形成一个exe文件的包,有其它需求可百度Fw等参数。

打包完成运行会提示错误,需要拷贝:Anaconda3/Library/plugins下的platforms文件夹到dist文件夹下。

提示:

使用pyinstaller打包后,exe文件会比较大,这是由于默认的把所有的包都集成到里面了,如果想要文件小一点,可以安装一个纯净版的python,只安装需要的包,或者打包时候打包成文件夹的形式,再删除不需要的包。

2.cxfreeze

安装直接下载安装就行,https://www.lfd.uci.edu/~gohlke/pythonlibs/

打包时候需要使用绝对路径:cxfreeze D:/hello.py --target-dir D:/123
需要注意的是,安装完可能会提示没有cxfreeze这个命令,参考往上查到的,在Anaconda3/Scripts文件夹下添加一个cxfreeze.bat文件,内容如下:
@ echo off
D:\Anaconda3\python.exe D:\Anaconda3\Scripts\cxfreeze %*

参考文献:

1、https://www.jianshu.com/p/43300f85af3e

2、https://www.zhihu.com/question/41211581

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章