解决办法一:打包附带额外py库–hidden-import=tix
打包时加上 --hidden-import=tix
命令行打包示例:
pyinstaller --hidden-import=tix -w -F main.py
或
pyinstaller.exe -w -F --hidden-import=tix main.py
注:--paths用来设置PyQt的环境变量,-F表示生成单个exe可执行文件,-w表示窗体程序,--icon是设置exe的显示图标
解决办法二:打包附带额外资源–add-data=…tix8.4.3;tix8.4.3
打包时加上 --add-data=D:\python38\tcl\tix8.4.3;tix8.4.3(注:windows以;分割,linux以:分割)
命令行打包示例:
pyinstaller --add-data=D:\python38\tcl\tix8.4.3;tix8.4.3 -w -F main.py
或
pyinstaller.exe -w -F --add-data=D:\python38\tcl\tix8.4.3;tix8.4.3
解决办法三:仍然弹窗 failed to execute script main?
在main.py文件中,构建显示窗体GUI界面时,加入如下代码:
import sys,os
#注意就是下面的 if 语句
if hasattr(sys, 'frozen'):
os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']
再次重复步骤打包即可。
附:使用Pychram一键快捷打包.exe文件
Pychram是重量级的python编辑器,可以配置相应的变量等实现在编辑器中写完代码即可打包,无需外部再cd定位文件再 pyinstaller命令打包。
相应步骤如下:
1 打开:File-Settings,定位到Tools-External Tools
2 左侧加号添加工具
3 命名工具并进行相应的配置
参数说明:
Program: 即下载的pyinstaller包内的pyinstaller.exe文件路径,一般使用pip命令下载位于python的安装目录下的Scripts文件夹下。
Arguments:可在使用工具时自动配置:-F -w --add-data=D:\python38\tcl\tix8.4.3;tix8.4.3 $FileNameWithoutExtension$.py
Working directory:设定为 $FileDir$ 或 $ProjectFileDir$
4 应用-保存
5 在项目中,点击需要打包的.py文件,右键找到外部工具操作点击即可: