我试图用py2exe创建一个pygame文件可执行文件(我有Python 2.7)。该程序由3个脚本组成。
我将设置写为:
from distutils.core import setup
import py2exe
setup(console=["main.py"])
在命令窗口中,我运行了设置:
setup.py py2exe
我在dist文件夹中找到了我的程序.exe。问题是,当我运行它时,会打开一个黑色窗口并立即关闭。
现在,我知道如果程序不等待任何输入,这是正常的,但在我的程序中有一个while循环,应该继续,直到用户关闭游戏窗口。我还试图在程序的开头放一个raw_input,但它什么都没改变。
然后我尝试创建一个非常简单的文件进行测试:
a = raw_input("hello")
print(a)
我将它转换为.exe并且它有效。所以,我猜这个问题出在我的pygame文件中。这是main的代码(函数和类是游戏的另外两个脚本):
import pygame, sys, functions
from classes import *
pygame.init()
pygame.font.init()
display_width = 600
display_height = 600
screen = pygame.display.set_mode((display_width,display_height))
menuImage = pygame.image.load("images/menu_t.jpg")
# colors
backgroundColor = (255,255,102)
buttonColor = (153,76,0)
buttonColorBright = (204,102,0)
# create tiles
for y in range(0,screen.get_height(),Tile.WIDTH):
for x in range(0,screen.get_width(),Tile.HEIGHT):
Tile(x,y)
# starting menu
while True:
screen.blit(menuImage,(0,0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYUP:
if event.key == pygame.K_ESCAPE:
pygame.quit()
sys.exit()
functions.button(screen,"Play",display_width/2-50,display_height/2,100,50,buttonColor,buttonColorBright,"play_game")
functions.button(screen,"Quit",display_width/2-50,display_height/2+75,100,50,buttonColor,buttonColorBright,"quit")
pygame.display.flip()
这是主要的,它应该加载背景图像和2个按钮。可执行程序无法正常工作的原因是什么?