【Python整蛊小代码】以及打包成.exe格式过程【踩坑,避坑】

2024-06-13 18:44

本文主要是介绍【Python整蛊小代码】以及打包成.exe格式过程【踩坑,避坑】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、项目介绍

该项目为一个Python写成的整蛊小代码,效果是不断弹出窗口,并显示图片和文字。并使用
项目大致效果:

(图片过于搞笑,不宜展示)

(无侵犯肖像权,禁止商用)

二、遇到的问题及解决

1、图片绝对路径报错:

在这里插入图片描述
解决方法:将分隔符“\”改成双斜线“\\”,如下:

 background = 'C:\\Users\\lycbu\\Desktop\\Python_joke\\laugh.jpg'

2、中文编码问题

显示中文字符时出现乱码,无法显示,如下图:

在这里插入图片描述
解决方法:更换系统字体,如下:

 font = pygame.font.SysFont('SimHei', 36)  # 选择字体和大小

在这里插入图片描述

3、带有图片打包时的问题

提示无法解码.jpg图片:

在这里插入图片描述

解决方法:在打包时使用–add-data 选项,如下:

pyinstaller -F -w './ha.py' --add-data './Background.jpg:.'

打包生成的.exe文件可以正常运行:

在这里插入图片描述

三、项目结构

项目文件包括python脚本、程序所用的图片,dist文件夹下为打包生成的.exe文件:

在这里插入图片描述

四、项目源代码

大致思想:使用pygame库,通过主循环,不断弹出窗口,并在窗口中设置背景图片和文字。

import pygame
from pygame.locals import *pygame.init()
# while True:
for i in range(5000):screen = pygame.display.set_mode((960, 720))# background = pygame.image.load('background.jpg').convert()# surface_temp = pygame.image.load('background.jpg')# bg = surface_temp.convert()background = 'C:\\Users\\lycbu\\Desktop\\Python_joke\\laugh.jpg'background_color = (255, 255, 255)  # 设置背景颜色screen.fill(background_color)#message = "HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA"message = "哈哈哈HAHAHA哈哈哈HAHAHA哈哈哈HAHAHA哈哈哈HAHAHA哈哈哈HAHAHA哈哈哈HAHAHA哈哈哈HAHAHA哈哈哈HAHAHA哈哈哈HAHAHA哈哈哈HAHAHA哈哈哈HAHAHA哈哈哈HAHAHA"message = message.encode('utf-8')font = pygame.font.SysFont('SimHei', 36)  # 选择字体和大小text_surface = font.render(message, True, (0, 0, 0))  # 渲染文本text_rect = text_surface.get_rect()  # 获取文本矩形位置text_rect.center = screen.get_rect().center  # 将文本置于屏幕中心running = True# while running:bg = pygame.image.load(background).convert()screen.blit(bg, (0, 0))screen.blit(text_surface, text_rect)# pygame.display.update()# for event in pygame.event.get():# if event.type == pygame.QUIT:# running = False# elif event.type == pygame.MOUSEBUTTONDOWN:# 当鼠标点击时,打开弹窗# screen.blit(text_surface, text_rect)# pygame.display.update()# 在这里添加关闭弹窗的逻辑,例如添加另一个事件处理# 更新屏幕pygame.display.flip()# 关闭Pygame
pygame.quit()

如仍有后续问题,在文后更新。

这篇关于【Python整蛊小代码】以及打包成.exe格式过程【踩坑,避坑】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1058123

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了