【python图形界面问题解决】wxPython创建图形界面程序,在代码编译器中正常运行,但是打包后却不能运行解决办法

文章讲述了在使用wxPython创建图形界面时,打包后程序无法运行的问题。作者通过录屏发现错误源自richtext.py的.pyd文件,这是Python的C++编译库。解决方法是确保在打包时包含这些动态链接库,需从虚拟环境复制相关文件。
摘要由CSDN通过智能技术生成

一、问题

使用wxPython创建一个图形界面,在VSCODE中正常运行,但是打包后,却不能运行,只出现一个一闪而过的窗口,这时最需要看看这窗口到底显示了什么内容。这里可以使用录屏软件录制屏幕,这里使用LICEcap小软件进行屏幕录制。
在这里插入图片描述

二、分析

找到黑色框出现的地方:
在这里插入图片描述
可以清晰看到报错地方,出现在wxPython库里,richtext.py中17行,找到该文件
在这里插入图片描述
浏览wx库文件,搜索._richtext文件,发现是以.pyd结尾的文件这是Python的扩展模块文件。它们是使用C或C++编写的动态链接库,可以被Python解释器加载和使用。在Windows上,.pyd文件通常被称为Python Dynamic Link Library,可以通过import语句在Python代码中导入和使用。
在这里插入图片描述

这里猜测打包时没有将用到的动态链接库打包进去。为了验证想法,我们再次打个包,打包前将生成单一exe的指令去掉,变成这样。(这里的speech目录是python虚拟环境目录)

nuitka   --standalone 南瓜饼Cookie查看.py --windows-disable-console  --windows-icon-from-ico=.\icon\icon.ico --output-dir=out --output-filename=南瓜饼Cookie查看.exe   --remove-output  --include-data-dir=icon=icon

打包成功,进入生成的文件目录,找到wx目录,发现仅有以下几个文件。
在这里插入图片描述
确实是没有pyd文件,那么下面给他手动加上。

三、解决方法

进行speech虚拟环境目录,将可能相关的动态链接库拷贝到打包后的目录中。
1、找到虚拟环境中的pyd文件
在这里插入图片描述
拷贝

在这里插入图片描述
再次运行之前生成的可执行文件,已经能够执行

在这里插入图片描述

四、小结
wxPython图形库底层是用C++编写,上层用python封装,pyd文件是C++库,打包文件时不会自动打包进exe文件,要手动添加。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值