【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,一经查实,立即删除!

相关文章

Android多线程编程

前言 本文由于介绍Android多线程编程的学习。 线程基本用法 定义线程有两种方式,分别是继承Thread类、实现Runnable接口: 继承Thread类:只需新建一个类继承自Thread,然后重写父类的run()方法,在这个方法里面写耗时…

美国卖家需知!儿童玩具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 …

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

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

Scala---集合(数组,Map,元组(Tuple),Zip拉链)详解

scala的集合分为了两类,一类是可变的集合(集合可以执行增删改查操作),另一类是不可变集合(集合元素在初始化的时候确定,后续只能进行查,有的可以进行修改,有的不可以)。二…

Transformers 微调

Transformers 微调 基于 Transformers 实现模型微调训练的主要流程数据字段数据拆分(分成训练跟测试)下载数据集数据集抽样预处理数据数据抽样微调训练配置加载 BERT 模型训练超参数(TrainingArguments)模型权重保存路径(output_d…

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社区版开发工具打…

【量化交易】顶底分型策略

在众多的量化策略中,顶底分型策略因其独特的市场趋势捕捉能力和简洁的实现方式而受到许多投资者的青睐。本文将详细介绍顶底分型策略的原理,并展示如何使用Python在聚宽平台上实现这一策略。 感兴趣的朋友,可以在下方公号内回复:0…

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 很多时候都不是最优的操作,但它具有普适性,在效率、可维护性之…

Leetcode 3111. Minimum Rectangles to Cover Points

Leetcode 3111. Minimum Rectangles to Cover Points 1. 解题思路2. 代码实现 题目链接:3111. Minimum Rectangles to Cover Points 1. 解题思路 这一题在这次比赛的4道题当中算是比较简单的,基本就只需要将所有的点排序之后然后使用贪婪算法来cover住…

【C++造神计划】运算符

1 赋值运算符 赋值运算符的功能是将一个值赋给一个变量 int a 5; // 将整数 5 赋给变量 a 运算符左边的部分叫作 lvalue(left value),右边的部分叫作 rvalue(right value) 左边 lvalue 必须是一个变量 右边 rval…

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

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

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

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

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

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

docker compose安装及安装慢解决办法

docker compose安装 Compose下载添加执行权限创建软链测试安装结果 Compose下载 curl -SL "https://github.com/docker/compose/releases/download/v2.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose上述compose是在docker官方git…

一年期SSL证书怎么申请?

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

ReentrantLock源码阅读

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

websocket原理及简单入门

在了解websocket之前,我们先来了解一下websocket出现之前的世界 当我们在开腾讯会议或视频通话时,我们自己的影像会传给对方,对方的影像也能同时传给我们,这就是即时通讯技术 即时通讯技术是实现:服务器端可以时地将数据的更新或变化反应到客户端,在Web中…