教程合集地址:https://blog.youkuaiyun.com/infent/column/info/30927 代码下载地址:https://download.youkuaiyun.com/download/infent/10846010 最终应用来到了打包阶段,这里坑点居多,因此拿出一节来记录一下我这两天的历程。我只能说没有解决不了的问题只有定义不清晰的问题,只要方向对了,问题会随着了解的加深而迎刃而解。 首先讲一讲pyinstaller的用法,在你想放置应用的文件夹下打开cmd,pyinstaller + 参数 +文件入口或打包定义文档。 -F:仅仅生成一个文件,不暴露其他信息,启动较慢。 -D:生成一个文件夹,里面是多文件模式,启动快。 -w:窗口模式打包,不显示控制台。 -c:跟图标路径,作为应用icon。 --hidden-import 应用需要的包,但是没有被打包进来,这里的错误是最多的,因为一般是第三方包隐式调用其他包,然后打包出来的程序显示Fate Error不能运行。 我用到的也就是这些了,还是讲讲流程。最开始是打包日志里报一些xxx module找不到,这些pip安装就行了,关于环境问题,我建议用python3.5,因为据说3.6容易打包失败。但是我用的一开始就是3.5,pyinstaller是3.4,pyqt5.9这都没有问题,解决完这些明面上的包,还是启动不了的话,就是隐式调用了一些包,我的是sklearn的一些包和pymysql的包隐式调用而我的程序里没导入所以一直启动不了,但是也不要什么都import * 那样会导致打出来的包很大。 这里是和百度学的,就是先默认打包,不用写参数,让错误信息打到控制台,但是有个问题,控制台闪了一下就退出了,看不清。这样就需要先录下来,再去看了,下面是我当时录下来的两个截图