我使用pygame构建了一个简单的“飞扬的小鸟”游戏,然后尝试使用pyinstaller将.py脚本转换为带有pyinstaller flappybird.py
的.exe。但是,当我尝试执行.exe时,命令提示符和游戏窗口会打开约2秒钟,而不会显示任何错误,也不会显示游戏中的任何内容,当通过flappybird.py
在python中作为python脚本执行时,效果很好命令提示符。我正在使用最新版本的pyinstaller,我不知道为什么它不起作用,因为它与我之前编写的其他游戏一样具有吸引力。
感谢您的帮助; D
答案 0 :(得分:0)
尝试打开命令提示符并导航到安装它的文件夹。然后通过flappybird.exe
(或您命名的任何名称)运行它,并检查错误是否未在终端中显示。听起来好像遇到了使它崩溃的错误,但是在您读取该错误之前,它会立即关闭。因此,从终端运行它可以使它具有一个不会消失的窗口,并且如果有一个窗口,它可以在其中显示一条错误消息(不过,我不确定这可能只会告诉您启动过程中的错误)。我通常更喜欢使用具有一段文本更新的GUI,并且可以使用它本质上将已编译程序的状态“打印”到此框中,也许您可以使用类似的技术?祝你好运!
使用您的代码,我能够毫无问题地对其进行编译和运行(使用cx-freeze)。我的setup.py文件是:
import sys
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
additional_modules = []
build_exe_options = {"includes": additional_modules,
"packages": ["pygame", "random", "sys", "pyglet"],
"excludes": ['tkinter'],
"include_files": ['icon.ico', 'res']}
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup(name="Flappy Bird",
version="1.0",
description="Flap around",
options={"build_exe": build_exe_options},
executables=[Executable(script="flappybird.py", base=base)])
如果您可以运行可执行文件
pip install cx_freeze
将上面的代码复制/粘贴到文件setup.py
(位于脚本旁边)
在命令提示符下打开文件夹并运行python setup.py build
如果命令失败,则可能需要再次运行该命令(与尝试从尚未创建的文件夹中读取有关)。
build
,并且可执行文件在其中!