新手入坑Python的坎坷历程——打包带gui的exe
原来接触过一段时间java,今天看了看python,对比一下觉得python比java更简单,更灵活。用更少量代码就可以实现java中很复杂的功能。但刚一接触给我的感觉,python没有java那样按部就班,循规蹈矩。乍一看很简单,很灵活,很容易学,但正因为灵活,可以说对待新手并不是那么友好,很多东西并不能按照逻辑逆推出你想要了解的东西。
入了python的坑,准备拿来做一点桌面小程序吧,既然是程序,肯定先要有一个比较亲切的交互过程(gui),百度搜了搜,我用了tkinter,和java差不多,导包,引用没有什么太难的,我用的编辑器是PyCharm Community Edition ,只是一些功能,自动补全里并不全,还是需要去百度。
然后是mysql数据库,这里就遇到了坑。
最开始在百度搜到的数据库导包需要的是mysqlDB,但后来发现,这个数据库是python27用的,我装的py3.7,只能用pymysql这个包。
导这个包时候就又遇到了坑,死活也导不成功,起初以为是源获取不到,后来添加了
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣:http://pypi.douban.com/simple/
几个源,下载还是失败。仔细看了看错误,才发现,是pip19不能成功获取到pymysql(反正就是不成功的意思),需要升级pip。然后我打开设置,升级pip,又遇到了坑,升级成功之后,仍然没有办法获取到pymysql,报错信息还是提示我pip19,一头雾水的我,开启了cmd
pip show pip
还真是19
继续百度吧。。查到了如下语句
python -m pip install --upgrade pip
这次机智如我,以管理员身份打开了cmd,执行了这句话,果然,失败了。。
又是半天的找茬游戏,最终这次是自己给自己挖的坑,原因特别简单,我在PyCharm里一直在尝试失败的升级,可能是某些文件被占用了,cmd升级一直失败,我关闭PyCharm 之后瞬间就升级成功了。
pymysql使用方法网上都一大堆,不多说了,很轻松就实现了自己的目的,这里还是没遇到什么坑的,开开心心的点了运行,完美的操作一波,心想这么好的程序终于可以打包出去用了,因为java是虚拟机,python底层是c,所以还真是又方便又简单。
打包好exe开心的在本机测试通过了~拿到其他电脑上测试,就开启了我的再次翻山越岭的吐血历程
py打包exe,百度~
pyinstaller -F -w xxx.py
没毛病,轻轻松松打包exe,exe直接就出来了,没黑窗口,没窗口,没…没有任何东西…后来查了查,打包带gui的exe,需要用到pyqt5,网上没找到,还是归功于b站大神的视频
pip install pyqt5
pip install pywin32
pip install pyinstaller
其实如果您看到这里,并成功执行打包命令,应该是已经成功了的,但问题就在于我后续的作死操作。
首先我犯的第一个错误就是使用了x64的Python环境,x86的电脑完全不能运行我的程序
其次我改回去的时候,添加了好多好多的系统环境变量,有64的,有86的,打包的时候因为环境变量多,产生N多毫无头绪的未知错误。
填坑:把所有环境都删了,所有包都卸了,只安装x86,再重新打包一次,就完美运行了
如果遇到丢失dll的错误,可以下载微软的运行库,在我发布的资源里可以找到,也可以自己到微软官方去下载。