参考链接:https://blog.csdn.net/weixin_44086593/article/details/88284276
https://blog.csdn.net/rong81117/article/details/82745753
https://blog.csdn.net/lpl_lpl_lpl/article/details/80869322
windows平台打包.py程序为.exe程序见:https://blog.csdn.net/zhurui_idea/article/details/77232175
官网www.pyinstaller.org下载Pyinstaller安装包;
我用的下载地址如下:
https://codeload.github.com/pyinstaller/pyinstaller/legacy.tar.gz/develop
下载下来之后再解压,我下的版本是PyInstaller-3.5,解压后如下:
控制台中,CD到该文件夹,切换到root权限(sudo su)
执行python setup.py install进行安装 (我这里的python声控程序需要在python2.7下面执行,所以用的这句,根据实际需求,如果你是python3的话,那么用这句:python3 setup.py install),安装好后,然后再切换回pi用户(sudo su pi)
执行pyinstaller *.py打包为可执行程序,加-F为打包成单个文件
显示成功后,在dist文件中可找到含该文件的文件夹:
我这里有两个程序都自己建了快捷方式,所以有两个文件夹(加-F就只是两个文件了,后来证实还是打包成单个文件好)
如果加-F打包成单个文件如下图,(区别是单个文件的大小为6.6M,可放到任何地方运行。而用上面不加-F方式生成的可执行文件大小只有1.9M,只能放到其原生的文件夹内运行,如果移动到其它目录则没法运行):
进入文件夹如下(可执行文件大小只有1.9M,只能在此文件夹内运行):
自己随便找一个logo图片,我找的是brower.jpg(如上图所示),大小22k,
然后在此文件夹中创建一个空文件,并将后缀名改为.desktop,
里面内容如下:
[Desktop Entry]
Name=VoiceBrower
Comment=voice open brower
Exec=/home/pi/aip-baidu-test/dist/VoiceBrower/VoiceBrower
Icon=/home/pi/aip-baidu-test/dist/VoiceBrower/brower.jpg
Terminal=true
Type=Application
Categories=Application;Development;
加入内容以后,再保存,自动生成如下快捷方式文件:
位置如下:
此时,此文件将不可再打开编辑,双击即可运行(右键菜单 打开 也是运行),把它拷贝到桌面即可在桌面双击运行了。
备注:我遇到了通过python命令行在终端执行,能够通过,但打包后运行到录音结束时,闪退(看不到任何错误信息),不得其解,后来在终端通过进入相应目录,执行 ./VoiceBrower,输出了错误信息,原来是print (word) 一句有问题。那我就知道肯定是因输出的word变量中含有汉字,可第一版(此时还是用的第一版,上边的那个,无法显示汉字的,至于为何命令行可以正常运行,打包后的不行,那就不管它了,直接换成下边的那个先进的版本的,然后发现就正常了。哈哈,看来还是用UTF-8声明的比较好啊)
另外说一下 cd /usr/share/applications
如果放一份快捷方式文件在这里,那么在开始菜单中就有我的程序了额。