哪家公司建换电站,好看的企业网站模板,个人网站首页内容,公司邮箱登陆5.9 Pyinstaller打包问题
5.9.1 找不到指定的模块
Pyinstaller在进行打包时#xff0c;会解析打包的Python文件#xff0c;自动寻找py源文件的依赖模块。但是Pyinstaller解析模块时可能会遗漏某些模块#xff0c;这个时候就会报错#xff1a;No Module named xxx。 如果是…5.9 Pyinstaller打包问题
5.9.1 找不到指定的模块
Pyinstaller在进行打包时会解析打包的Python文件自动寻找py源文件的依赖模块。但是Pyinstaller解析模块时可能会遗漏某些模块这个时候就会报错No Module named xxx。 如果是通过spec打包则需要在Analysis下–hidden-import中加入遗漏的模块。如果是通过批处理命令打包则需要添加–hidden-import参数。
5.9.2 动态链接库缺失问题
打包后可能会缺失某些动态链接库造成执行程序出错如 ImportError: DLL load failed: 找不到指定的模块 在打包过程中一般会有与此相关的warning提示lib not found无法找到这些动态链接库。例如在32位版本的打包中可能会出现scipy模块相关的dll文件无法找到。这时就需要在打包的spec文件中指定动态链接库路径使其关联到打包后的路径中。 binaries[(‘C:\Program Files\Python36-32\Lib\site-packages\scipy\extra-dll’,‘.’)] Analysis下的binaries是为打包文件添加二进制文件缺失的动态链接库可以通过这种方式自动加入到打包路径中。
5.9.3 UnicodeDecodeError
当打包时出现类似错误时 UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xce in position 122 处理办法
删除中文注释在运行Pyinstaller 前先在cmd里输入chcp 65001修改Pyinstaller包下的compat.py根据报错对应的行将out out.decode(encoding)改为out out.decode(encoding, ‘replace’)
5.9.4 权限问题
通常时在打包时出现的某些文件拒绝访问或没有权限执行某些操作等。解决这个的方法一般有这几个方面
使用管理员权限运行cmd或其它命令行窗口关闭杀毒软件使用完全权限的管理员账户
5.9.5 中文路径
Pyinstaller打包后的路径使用中文没有问题不过为了减少打包时候出错的可能尽量将打包使用的资源文件和代码文件路径设置为英文。
5.9.6 打包后的程序无法在其它电脑上运行
64位系统上打包的只能运行于64位系统不过32位系统上打包的的可以运行于32位和64位系统。 所以exe放到其他电脑上若无法运行的话可以看一下两台电脑的位数是不是相同。
5.9.7 XX文件不存在
通过datas参数添加文件到程序目录中。
5.9.8 动态链接库丢失
无法定位程序输入点 ucrtbase.terminate 于动态链接库 api-ms-win-crt-runtime-l1-1-0.dll 解决方法是在需要运行的PC上安装 https://www.microsoft.com/en-us/download/confirmation.aspx?id48145
5.9.9 AttributeError: module ‘enum’ has no attribute ‘IntFlag’?
因为电脑里安装了enum34这个包 这个包与Python自带的enum包冲突了因此使用uninstall命令将其卸载即可管理员打开cmd pip uninstall enum34
5.9.10 黑框及去除黑框
5.9.10.1 黑框及其作用
所谓黑框其实就是命令行窗口。当我们成功打包并运行程序后黑框中会显示程序输出内容。但是如果程序运行不成功那黑框中就会显示报错信息这个对我们非常重要。而有些时候我们程序显示的是一个GUI界面所以不想要黑框不然用户会觉得不友好。 在运行程序时虽然黑框会显示报错信息但是可能会一闪而过。查看黑框报错信息 1、使用CMD通过CD命令进入到主程序所在的文件夹然后运行打包.exe命令这样报错的内容就会显示在当前CMD窗口中了。 2、打开CMD将主程序拖入到CMD中。 3、在代码中添加os.system(‘pause’)命令
5.9.10.2 去除黑框
去掉黑框其实非常简单我们只需要打包的时候加上-w命令即可 Pyinstaller -w belle.py