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

一、问题

使用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文件,要手动添加。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/817065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美国卖家需知!儿童玩具CPC认证ASTMF-23标准更新

2023年10月13日,美国材料与试验协会(ASTM)发布了最新版本的玩具安全标准ASTM F963-23。这一标准的修订涵盖了声学、电池可及性、充气材料、弹射玩具等技术方面的要求。同时,它还为邻苯二甲酸盐和重金属在玩具基材中的使用提供了豁…

Towards IP Geolocation Using Delay and TopologyMeasurements(TBG)(2006年)

下载地址:Towards IP geolocation using delay and topology measurements | Proceedings of the 6th ACM SIGCOMM conference on Internet measurement 被引次数:492 Katz-Bassett E, John J P, Krishnamurthy A, et al. Towards IP geolocation using delay and topology …

通讯录的实现(单链表版本)

我们首先要知道通讯录的实现是基于单链表的基础上的,所以我们首先要搞懂单链表。(注意:今天的代码量较多),但这不是阻挡我们前进的脚步,冲冲冲!!! 单链表的简要概述 我们…

2024.4.19 Python爬虫复习day07 可视化3

综合案例 需求: 已知2020年疫情数据,都是json数据,需要从文件中读出,进行处理和分析,最终实现数据可视化折线图 相关知识点: json json简介: 本质是一个特定格式的字符串 举例: [{},{},{}] 或者 {}python中json包: import jsonpython数据转为json数据: 变量接收json…

微服务架构使用和docker部署方法(若依)

这里以若依官方网站开源的微服务框架为例子记录使用方法过程。 开源地址:RuoYi-Cloud: 🎉 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统,同时提供了 Vue3 的版本 下载后,用IDEA社区版开发工具打…

GNU Radio Radar Toolbox编译及安装

文章目录 前言一、GNU Radio Radar Toolbox 介绍二、gr-radar 安装三、具体使用四、OFDM 雷达仿真 前言 GNU Radio Radar Toolbox(gr-radar)是一个开放源码的工具箱,用于 GNU Radio 生态系统,主要目的是为雷达信号处理提供必要的…

vue源码解析——diff算法/双端比对/patchFlag/最长递增子序列

虚拟dom——virtual dom,提供一种简单js对象去代替复杂的 dom 对象,从而优化 dom 操作。virtual dom 是“解决过多的操作 dom 影响性能”的一种解决方案。virtual dom 很多时候都不是最优的操作,但它具有普适性,在效率、可维护性之…

木马免杀代码之python反序列化分离免杀

本篇文章主要用到python来对CobaltStrike生成的Shellcode进行分离免杀处理, 因此要求读者要有一定的python基础, 下面我会介绍pyhon反序列化免杀所需用到的相关函数和库 exec函数 exec函数是python的内置函数, 其功能与eval()函数相同, 但不同的是exec函数支持多行python代码…

我国新戊二醇产能逐渐增长 市场集中度有望进一步提升

我国新戊二醇产能逐渐增长 市场集中度有望进一步提升 新戊二醇(NPG)又称为2,2-二甲基-1,3-丙二醇,化学式为C5H12O2,熔点为124-130℃。新戊二醇多表现为一种无特殊气味的白色结晶固体,易溶于水及醇、醚等溶液。新戊二醇…

为什么看到这么多人不推荐C++?

前几天逛知乎的时候,看到一个问题: 看到这个问题我倒是想吐槽几句了。 C一直没找到自己的定位! C语言:我是搞系统编程开发的,操作系统、数据库、编译器、网络协议栈全是我写的。 PHP:我是搞后端业务开发…

一年期SSL证书怎么申请?

申请SSL证书三步走 JoySSL_JoySSL SSL证书_JoySSL https证书-JoySSL 一、选证书类型 根据网站性质与安全需求,选定合适的SSL证书: - 域名验证证书(DV):快速验证域名所有权,适用于个人网站、博客&#xff…

ReentrantLock源码阅读

1. 概述 lock锁, 基于队列同步器AQS, 实现公平锁、非公平锁 队列同步器AQS可以阅读我这篇文章: 点击传送 实现了Lock接口: public class ReentrantLock implements Lock// 加锁 获取不到锁一直等待 void lock(); // 加锁 获取不到锁一直等待 等待过程可以被中断…

【攻防世界】php_rce (ThinkPHP5)

进入题目环境,查看页面信息: 页面提示 ThinkPHP V5,猜测存在ThinkPHP5 版本框架的漏洞,于是查找 ThinkPHP5 的攻击POC。 构造 payload: http://61.147.171.105:50126/?sindex/think\app/invokefunction&functioncall_user_f…

【Go语言快速上手(一)】 初识Go语言

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Go语言专栏⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习更多Go语言知识   🔝🔝 Go快速上手 1. 前言2. Go语言简介(为…

模拟Android系统Zygote启动流程

版权声明:本文为梦想全栈程序猿原创文章,转载请附上原文出处链接和本声明 前言: 转眼时间过去了10年了,回顾整个10年的工作历程,做了3年的手机,4年左右的Android指纹相关的工作,3年左右的跟传感…

亚马逊CloudFront使用体验

前言 首先在体验CloudFront之前,先介绍一下什么是CDN,以及CDN的基本原理。 CDN是Content Delivery Network(内容分发网络)的缩写,是一种利用分布式节点技术,在全球部署服务器,即时地将网站、应…

《由浅入深学习SAP财务》:第2章 总账模块 - 2.6 定期处理 - 2.6.6 年初操作:科目余额结转

2.6.6 年初操作:科目余额结转 在使用事务代码 FAGLB03 查询科目余额时,可以看到按期间的发生额清单。其中,第一行称为“余额结转”,该行的累计余额代表上年度遗留下来的余额,也就是年初余额。对于资产负债表科目而言&a…

七大设计原则

在软件开发的领域中,随着技术的不断进步和市场需求的不断变化,软件系统的设计和维护变得越来越重要。为了确保软件系统能够长期有效地运行,并且能够在未来的发展中适应新的需求和技术变化,提高软件系统的可维护性和可复用性成为了…

map与set

set使用 set在我们就是我们前面学习的k模型,它可以用来比对数据,增删查的时间复杂度都是O(logn)效率非常高,由于它底层的原因,它也可以实现排序,通过中序遍历可以输出我们的有序的数据&#xff…

安装gensim报错

安装gensim pip install --upgrade gensim装完以后注意一个 装了一堆库其实,看下对应的scipy版本是1.13.0 然后运行 import gensim报错: cannot import name ‘triu’ from ‘scipy.linalg’ https://www.soinside.com/question/brZ46N5EH7bk9xdVwXa…