要将pygame项目转换为windows可执行文件吗

2024-04-19 18:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我用pygame创建了python游戏,这本书叫做“python速成课程”。它有9.py文件(1个用于运行游戏,其他8个用于设置、游戏功能等模块)和一个文件夹,其中有2个图像文件。我想与没有python和pygame的朋友共享这个项目,所以我想将整个项目转换为.exe(windows可执行文件)

我试过cx\u-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()
...

如果您需要任何其他信息,请随时询问!你知道吗


Tags: 模块文件项目frompyimport功能文件夹
1条回答
网友
1楼 · 发布于 2024-04-19 18:26:56

首先,我建议您在有代码要显示时使用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() ...

现在,谈谈你的问题。根据cx_Freeze documentation

Different bases serve for different types of application on Windows (GUI, console application or service).

对于cx\u 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到独立应用程序转换器”,但我想可能有一些类似的东西需要被更改,以便正确执行应用程序,而不是作为一个控制台应用程序。当这种问题发生时,我建议您花时间仔细阅读它的文档。你知道吗

希望有帮助!你知道吗

相关问题 更多 >