# planeGameShow **Repository Path**: fenggbinn/planeGameShow ## Basic Information - **Project Name**: planeGameShow - **Description**: 我发现github上的文件下载不了,所以就clone到gitee上 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-05-24 - **Last Updated**: 2022-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # planeGameShow 飞机大战游戏演示,可以直接下载解压直接运行,相当于一个绿色版(免安装)小游戏。 python打包方法:https://blog.csdn.net/qq_43987149/article/details/117231028 python pyinstaller打包pygame,含有多个py文件和多个资源(image,font,sound),并且py文件中导入了多个其他的类(如:import pygame) 一、文章主要内容 python pyinstaller打包pygame(以飞机大战为例),含有多个py文件和多个资源(image,font,sound),并且py文件中导入了多个其他的类(如:import pygame)。 二、打包方法(打包的时候没有管资源文件,只管py文件) 1、安装打包文件:pyinstaller,在cmd中输入以下命令 pip install pyinstaller 2、到需要打包的py文件目录下,在文件目录框输入cmd,然后回车进入当前路径下的cmd窗口(这个只不过是快速打开这个路径下的cmd窗口,也可以以其他方式进入到py文件的目录下) 3、输入以下命令直接开始打包: ① 第一种情况:#只有一个文件 pyinstaller -F 飞机大战.py ② 第二种情况:#有多个py文件可以直接以空格间隔继续在后面添加 pyinstaller -F 飞机大战.py supply.py myplane.py enemy.py ③ 其他可加命令:-i 程序图标.ico,-w: 不显示python运行窗口,建议最后再添加此命令,测试的时候先不添加,方便查找错误。 pyinstaller -F -i D:\pyinstall\plane\plane.ico -w 飞机大战.py supply.py myplane.py enemy.py 4、执行完第三部之后 ① 会在当前目录下生成build和dist文件夹,exe文件在dist文件夹里面,如果有资源文件的话直接放到dist文件夹里(注意文件路径)。 ② 放好资源文件,直接双击exe文件就可以运行了。 ③ 如果可以正常运行,python项目打包成功了,如果想在其他电脑上运行此程序,可以打包(压缩包)dist整个文件夹。 ④ 对③的补充:其实如果pyinstaller打包的exe程序没有资源文件,可以直接复制exe文件在其他电脑运行。 5、常用打包扩展命令 -F :pyinstaller -F demo.py 只在dist中生产一个demo.exe文件。 -D:pyinstaller -D demo.py 默认选项,除了demo.exe外,还会在在dist中生成很多依赖文件 -i:加入图标 -w:表示执行exe文件时去除背后的dos窗口 ps:建议最初试验时保留dos,可以查看是否有错误发生 ps:-w命令有的不能使用 例如:如果这个py文件很简单,里面只有简单的输出语句,需要用到dos窗口,使用-w打包之后会导致程序无法运行。 三、遇到的错误 1、ModuleNotFoundError : No module named 'pygame' 此错误是因为我电脑上没有安装pygame类包,在cmd中安装一下: pip install pygame 2、Fatal error detected × Failed to execute script x 确定 -w命令有的不能使用 例如:如果这个py文件很简单,里面只有简单的输出语句,需要用到dos窗口,使用-w打包之后会导致程序无法运行。 3、Python打包之后执行exe直接闪退 这个可能是因为py文件本身很简单,里面代码运行之后就直接闪退了。如下一个简单的py文件: import math #import os #import pygame #from pip._vendor.distlib.compat import raw_input print("今天是2021-05-24 15:59") print(max(3,4)) if math: print(123) # os.system("pause") # raw_input() #input("输入任意字符结束") 解决办法就是打开最后注释的任意一条语句: import math #import os #import pygame #from pip._vendor.distlib.compat import raw_input print("今天是2021-05-24 15:59") os.system("pause") raw_input() print(max(3,4)) if math: print(123) input("输入任意字符结束") 4、AttributeError: module 'win32ctypes.pywin32.win32api' has no attribute 'erro ① 是因为pyinstaller打包时图片的格式不对 应该为.ico格式 ② 在线图片转换链接:png->ico ③ 上面那个链接不只支持png格式转ico,其他的也可以。