我对编程还不熟悉,所以我给自己提出了创建Pong的挑战,我做到了。现在我想和几个朋友分享它,所以我决定尝试使用pyinstaller(尝试过cx_Freeze)。 在这个乒乓球游戏我有3个音效,位于文件夹“sfx”。因此,我研究了使用pyinstaller包含的文件,因此我的.spec文件显示:
added_files = [
('E:\Game Development Stuff\Python 3\Games\Pong\sfx\hitOutline.ogg', 'sfx'),
('E:\Game Development Stuff\Python 3\Games\Pong\sfx\hitPaddle.ogg', 'sfx'),
('E:\Game Development Stuff\Python 3\Games\Pong\sfx/score.ogg', 'sfx')
]
a = Analysis(['pong.py'],
pathex=['E:\\Game Development Stuff\\Python 3\\Games\\Pong'],
binaries=None,
datas=added_files,
在Pong程序中,我使用以下代码来获取路径:
^{pr2}$因此,我使用pyinstaller(使用命令pyinstaller)生成exe文件pong规范) 但当我打开pong.exe文件文件命令窗口显示:
Traceback "<string>", Unable to open file 'E:\\Game Development Stuff\\Python 3\\Games\\Pong\\dist\\pong\\sfx\\hitPaddle.ogg'
但在同样的道路上打高尔夫球.ogg. 在我看来pygame找不到它是因为某种奇怪的原因?在
在为同一个问题挣扎了几个小时之后,我解决了这个问题。结论:
问题不在于找不到它,然后它会说一些“找不到”的东西。打开文件确实是个问题。不知何故,.ogg格式会带来问题。我把所有的.ogg文件都改成了.wav文件,我的游戏现在可以作为可执行文件运行了。在
但我不知道为什么,因为两周前,对于以前的版本,我确实设法用完全相同的.ogg文件制作了一个可工作的.exe。我不认为我所做的改变会对这件事产生什么影响。不管怎样,它现在起作用了,也许这也可以为其他人解决这个问题。在
我相信问题就在这一条线上。您没有正确地重新编码文件。你写道:
相反,你应该:
^{pr2}$这是因为在spec文件中添加文件时,您声明它们应该位于“root\sfx”文件夹中。当.exe在一个文件模式下运行时,所有文件实际上都位于一个名为MEIXXXX的临时文件夹中,其中XXXX是一些整数。当你运行.exe时,如果你打开这个文件夹,你应该可以在那里看到你的文件。在
相关问题 更多 >
编程相关推荐