最近做了一个pygame游戏。我想把它展示给我的朋友们。但不幸的是,我无法制作可执行文件,只有 .py
文件。我尝试使用诸如 py2exe
类的工具,它可能不支持 Python 3.6 和 pyinstaller
。我认为 pyinstaller
可能有用,我也可以成功制作一个 exe,但它根本不起作用。它只是显示它无法打开已经在同一个文件中的声音文件。
我尝试了两种加载文件的方法,首先加载路径然后转换后的exe显示它无法打开已经与exe位于同一路径的文件。
其次,我使用 os.path
exe 显示它无法打开 ...../temp/...
这是一个很长的路径,但我的电脑根本没有这个文件夹。
我是学习python的新手。我已经搜索了一天,但无法正常工作。你能帮助我吗?
原文由 Bili Nico 发布,翻译遵循 CC BY-SA 4.0 许可协议
我只是一个脚本黑客,在命令行工具方面是个白痴。但我真的很想将我的 python 游戏打包成 Windows 可执行文件。我与 pyinstaller 搏斗了好几天,并阅读了其他也在尝试弄清楚的所有线程,我还多次阅读了所有 pyinstaller 文档。没有一个解决方案适合我,但经过多次试验和错误后,我终于偶然发现了成功的秘诀,并想分享它,以防其他 pygame 开发人员反对这一点。该解决方案包含几个线程的点点滴滴。
如何在 Windows 上使用 pyinstaller 创建具有多个资产目录的多文件 python pygame 的单个文件 exe:
首先,安装pyinstaller。
打开 Windows 命令提示符,键入:
做一个蟒蛇游戏。假设主游戏文件名为 main_game_script.py,位于
将此函数添加到 main_game_script.py。确保导入 os 和 sys。 (我永远不会自己想出我需要将这个功能添加到我的游戏中,但它有效,所以感谢在其他线程中发布它的人)
要将图像加载到游戏中,请调用该函数,如下所示:
当您的游戏准备好打包在 EXE 中时,打开 Windows 命令提示符。转到主游戏目录并键入:
它看起来像这样:
这将创建四个重要项目:
运行该命令会吐出大量警告和日志。我不知道这一切意味着什么。但只要最终输出行显示成功,您就可能做得很好。
如果您的 exe 仍然无法运行:首先,您必须修改 .spec 文件(现在存在于 game_dir 中)以将所需的游戏资产路径添加到 exe:
在记事本或其他工具中打开 main_game_script.spec 文件。将空的 datas[] 列表替换为这样的资产目录路径(使用元组!):
每个元组的第一个值是您要导入的实际文件名。第二个值是你的相对路径 main_game_script.py 语法和路径必须是完美的,否则将无法运行并且可能不会抛出错误
保存并关闭“main_game_script.spec”文件。返回到您的 Windows 命令提示符。类型:
像这样:
这以某种方式将资产目录路径嵌入到您已经构建的 exe 中
完成这一切之后(完成 100 次后只需要几分钟),您终于拥有了包含所有游戏资产的 Python 游戏的单个 EXE 文件。如果你做的一切都正确,双击 EXE 来玩你的 python 游戏。
注意:第一次做对花了我几天时间。我从一个简单的 test_game_script.py 开始,使用最少的代码并有条不紊地进行迭代,在每次迭代中添加更多的资产路径和复杂性,这样我就可以找出损坏的地方和原因。如果您的游戏没有正确转换为 EXE,请从一个简单的 5 行游戏脚本和一个资产开始,然后慢慢构建它,直到您拥有一个可用的管道,然后将该功能资产管道应用到您的实际游戏中。否则将无法隔离问题。