【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

相关文章

hevc和H.264格式的区别

HEVC(High Efficiency Video Coding)和H.264(也称为Advanced Video Coding,AVC)都是视频压缩标准,但它们之间存在一些显著的区别,主要集中在压缩效率、资源需求和兼容性方面。 压缩效率 HEVC,也被称为H.265,提供了比H.264更高的压缩效率。这意味着在相同的视频质量下,HEVC能够以大约一半的比特率进行编码,从而减少存储空间需求和

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

C/C++的编译和链接过程

目录 从源文件生成可执行文件(书中第2章) 1.Preprocessing预处理——预处理器cpp 2.Compilation编译——编译器cll ps:vs中优化选项设置 3.Assembly汇编——汇编器as ps:vs中汇编输出文件设置 4.Linking链接——链接器ld 符号 模块,库 链接过程——链接器 链接过程 1.简单链接的例子 2.链接过程 3.地址和

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

Python 字符串占位

在Python中,可以使用字符串的格式化方法来实现字符串的占位。常见的方法有百分号操作符 % 以及 str.format() 方法 百分号操作符 % name = "张三"age = 20message = "我叫%s,今年%d岁。" % (name, age)print(message) # 我叫张三,今年20岁。 str.format() 方法 name = "张三"age

代码随想录算法训练营:12/60

非科班学习算法day12 | LeetCode150:逆波兰表达式 ,Leetcode239: 滑动窗口最大值  目录 介绍 一、基础概念补充: 1.c++字符串转为数字 1. std::stoi, std::stol, std::stoll, std::stoul, std::stoull(最常用) 2. std::stringstream 3. std::atoi, std

记录AS混淆代码模板

开启混淆得先在build.gradle文件中把 minifyEnabled false改成true,以及shrinkResources true//去除无用的resource文件 这些是写在proguard-rules.pro文件内的 指定代码的压缩级别 -optimizationpasses 5 包明不混合大小写 -dontusemixedcaseclassnames 不去忽略非公共

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa