不得不说,版本之类的什么问题真的会让初学者很头痛!!!
有人说老版好,到处都好用,兼容性强,但另一方面,人家既然出了新版,你总得跟上步伐吧。。。
回到主题,以前电脑上安装过Python2.7,后面做东西和同伴的3.6代码有点兼容性问题,换成Python3.5(当时不知道他是3.6)
后面打包应用成exe时出问题了,各种试都不行,然后索性按了Anaconda3,里面自带了Python3.6,安装Anaconda直接从官网上下了之后nextnext就好了,但是有一点有注意,记得勾选将路径添加到环境变量中去。不勾就自己加也行。
好了,下面正式进入如何打包pyqt图形应用为EXE:
(1)cmd中输入:pip install PyInstaller
(2)等待安装完成。安装完成后可以通过pip list 查看是否有pyinstaller,或者到pip的目录(Anaconda3/Scripts)下看有没有pyinstaller.exe,同时Anaconda3\Lib\site-packages下也有PyInstaller的文件夹,
(3)cmd进入到项目文件夹(cd XXX),我的文件夹下含有两个文件(pyqt.py和tax_calc.ui),不知道这两个文件怎么来的请看我的Python(4),然后通过下面的指令格式生成exe文件:
pyinstaller [opts] yourprogram.py
可选的opts有:
-F, –onefile 打包成一个exe文件。
-D, –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。
-c, –console, –nowindowed 使用控制台,无界面(默认)
-w, –windowed, –noconsole 使用窗口,无控制台
比如我用的指令是:pyinstaller -F -w pyqt.py
然后在项目文件夹下面会生成一下几个文件:
dist目录(目录里面有可执行文件)
build目录(生成exe的中间文件)
spec文件(要转换文件的同一目录下,用于生成exe文件,可以修改来自定义生成exe的属性
但在生成exe文件的过程中百般出错,致使我卸载了python3.5,安装上了64位的anaconda,其中自带python3.6,然后重新安装pyqt,
pyinstaller,最后参考了:http://blog.csdn.net/yz271212/article/details/71171824,更换了PyInstaller文件夹,但是其中
我并没有使用32位的python,而是仍是64位的最终成功了。
但过程并没有这么简单,我在一直没有成功的情况下,试了试我在Python(3)中的测试代码,结果测试代码生成exe文件非常顺利,这让我肯定我的安装什么的没有问题,那有问题又在哪儿呢,在查询各种博客后,我改变了生成exe文件的指令参数,用了“pyinstaller -D pyqt.py”,然后进入dist/pyqt目录下,双击生成的exe文件,仍不成功,然后查到这样是看不到错误提示的,应该从cmd中进入目录,运行exe文件,果然这样有了错误提示:No such file or direcroty:"tax_calc.ui"!!!
这不得不让人捶胸顿足!茅塞大开!!!
然后把相应的ui文件放在exe的同级目录下,cmd上运行成功,双击也可运行成功。
接着换以前的:pyinstaller -F -w pyqt.py 指令,然后把ui文件放在dist文件夹下面,同样成功!!!
教训:一定要想法设法的看到错误提示!!!这么说来,我以前的Python3.5应该也能通过同样的方法成功打包exe文件~~~