我用pygame从名为“ Python崩溃课程”的书中创建了python游戏。它有9个.py文件(其中1个用于运行游戏,另8个用于模块,例如:设置,game_functions等),以及一个包含2个图像文件的文件夹。我想与没有python和pygame的朋友分享这个项目,所以我想将整个项目转换为.exe(Windows可执行文件)
我尝试了cx_Freeze,py2exe和pyinstaller。 Pyinstaller是最成功的安装程序,它创建了.exe文件,但是当我运行该文件时,它会黑屏并关闭。我认为原因是它无法访问我正在使用的模块(8个.py文件)和/或图像文件。
这是主要的.py代码,它的导入内容和内容。
import pygame
from pygame.sprite import Group
from settings import Settings
from ship import Ship
import game_functions as gf
from game_stats import GameStats
from scoreboard import Scoreboard
from button import Button
def run_game():
pygame.init()
...
如果您需要任何其他信息,请随时询问!
答案 0 :(得分:1)
首先,让我建议您在有代码显示时使用Markdown
;它非常简单,而且阅读起来也很容易。
例如,在代码前添加```python ,并在末尾添加`。代码将被格式化并突出显示语法。例如,您的代码不会显示在一行上,而是变成:
import pygame
from pygame.sprite import Group
from settings import Settings
from ship import Ship
import game_functions as gf
from game_stats import GameStats
from scoreboard import Scoreboard
from button import Button
def run_game(): pygame.init() ...
现在,解决您的问题。根据{{3}}:
不同的基础为Windows上的不同类型的应用程序(GUI,控制台应用程序或服务)服务。
使用cx_Freeze,您需要在setup.py
文件中将应用程序指定为GUI(图形用户界面),例如:
import sys
from cx_Freeze import setup, Executable
# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup( name = "guifoo",
version = "0.1",
description = "My GUI application!",
executables = [Executable("guifoo_main.py", base=base)])
我还没有检查所有其他“从python到独立应用程序的转换器”,但是我想可能需要更改一些类似内容才能使该应用程序正确执行,而不是作为控制台应用程序。发生此类问题时,建议您花些时间仔细阅读其文档。
希望有帮助!