Oct*_*cto 5 python pygame cx-freeze python-3.x python-3.5
我正在尝试使用 cx_Freeze 将我的 pygame python 项目转换为 .exe 文件。安装文件执行正确且没有错误,但问题是当我运行 .exe 文件时,控制台窗口将打开和关闭,并且我的游戏窗口不会出现。
我正在使用的 setup.py:
import os
os.environ['TCL_LIBRARY'] = "C:\\Users\\MY_USERNAME\\AppData\\Local\\Programs\\Python\\Python35-32\\tcl\\tcl8.6"
os.environ['TK_LIBRARY'] = "C:\\Users\\MY_USERNAME\\AppData\\Local\\Programs\\Python\\Python35-32\\tcl\\tk8.6"
import cx_Freeze
executables = [cx_Freeze.Executable("main.py")]
cx_Freeze.setup(
name="Shooty",
options={"build_exe": {"packages": ["pygame"], "include_files": ["character.png"]}},
description="Shooty, An epic platformer!",
executables=executables
)
Run Code Online (Sandbox Code Playgroud)
我遇到了 TCL 错误,因此添加了前三行。然后一切都应该是正确的。我已经看过类似的帖子,但似乎没有任何帮助。
cx_freeze 应用程序打开然后快速关闭< 该用户只是有一个简单的打字错误
python 程序可以工作,但 .exe 无法打开 cx_Freeze < 没有 anwser,也没有有用的评论。
使用 cx_freeze 生成的可执行文件在关闭前打开瞬间< 该用户实际上收到错误。我不。
为了澄清/TLDR: 我正在使用 cx_Freeze 将 pygame 游戏转换为 .exe 格式。我只有一张名为“character.png”的图像。构建完美执行,没有错误(只要我包含前三行),唯一的问题是:运行 exe 时,控制台会打开,但不会打开我的游戏窗口,并且控制台会立即关闭。
我复制了您的设置脚本并使用我自己的 Pygame 项目之一对其进行了测试。一开始它对我来说也不起作用,所以我调查了这个问题,并在 Bitbucket 上发现了一个错误:https: //bitbucket.org/anthony_tuininga/cx_freeze/issues/211/if- name - main -doesnt-work-in
显然有一个错误,特别是 cx-Freeze 5.0 版,该线if __name__ == "__main__":将无法工作。但是当我按照错误报告中的建议替换它时if __name__.endswith('__main__'):,我的 Pygame 应用程序可以与 cx-Freeze 一起使用,所以这解决了我的问题。
此外,我建议将关键字参数添加base="Win32Gui"到cx_Freeze.Executable,以便控制台窗口不会显示在 Pygame 窗口后面,除非您想要它。此外,Tkinter 对于 Pygame 应用程序来说是完全不必要的,因此您可以将"excludes": ["Tkinter"](或tkinter在 Python 3 中小写)添加到选项字典中并删除脚本的前三行。
| 归档时间: |
|
| 查看次数: |
4893 次 |
| 最近记录: |