记一次pyinstaller打包pygame项目为exe的过程(带图片)
一段简单的pygame代码,只在pygame界面背景绘制了一个背景图片
#-*-coding=utf-8-*- importsys importpygame pygame.init() screen=pygame.display.set_mode((400,300)) bg_image=pygame.image.load('bg.jpeg') bg_image=pygame.transform.scale(bg_image,(400,300)) whileTrue: foreventinpygame.event.get(): ifevent.type==pygame.QUIT: pygame.quit() sys.exit() screen.blit(bg_image,(0,0)) pygame.display.update()
目录下只有两个game.py和一个bg.jpeg图片
程序运行是正常的
pyinstaller-pC:\Users\xxx\AppData\Local\Programs\Python\Python37\Lib\site-packages-F-wgame.py
打包后再次执行,发现错误
pyinstaller-pC:\Users\xxx\AppData\Local\Programs\Python\Python37\Lib\site-packages-F-cgame.py
然后将exe拉进cmd窗口里执行
是可以的,要做下面两步
#-*-coding=utf-8-*- importos,sys importpygame defresource_path(relative): ifhasattr(sys,"_MEIPASS"): absolute_path=os.path.join(sys._MEIPASS,relative) else: absolute_path=os.path.join(relative) returnabsolute_path pygame.init() screen=pygame.display.set_mode((400,300)) bg_image=pygame.image.load(resource_path('bg.jpeg')) bg_image=pygame.transform.scale(bg_image,(400,300)) whileTrue: foreventinpygame.event.get(): ifevent.type==pygame.QUIT: pygame.quit() sys.exit() screen.blit(bg_image,(0,0)) pygame.display.update()
2.打开前面生成的那个game.spec来编辑,只需要编辑下面EXE那部分,修改成
exe=EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [('bg.jpeg','D:\\mycode\\bg.jpeg','DATA')], name='game', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=True)
在a.datas下方的数组里填上要打包的图片,如果是两个图片,那么写成
[('bg.jpeg','D:\\mycode\\bg.jpeg','DATA'),('bg2.jpeg','D:\\mycode\\bg2.jpeg','DATA')]
这样的格式
修改完文件后再次打包时需要注意,这次执行打包需要用pyinstallergame.spec这种指定spec文件的方式打包,再次运行打包后的exe终于发现现在可以正常运行了。但是现在还多一个控制台的黑窗没去掉,回到game.spec,把console=True这一行,改成console=Flase后再用pyinstallergame.spec打包就完美结束了。
到此这篇关于记一次pyinstaller打包pygame项目为exe的过程(带图片)的文章就介绍到这了,更多相关pyinstaller打包pygame为exe内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。