Python Py2Exe文件在结束时关闭,可能是由于
我制作了一个py2exe可执行文件,这是一个“编程测试”。它是在pygame中制作的,当我以EXE的形式运行它时,它会一直工作到最后。我想是因为结尾有pygame文本。错误如下。下面是代码的一部分,它不是作为exe,而是作为普通的.py:Python Py2Exe文件在结束时关闭,可能是由于,python,pygame,py2exe,Python,Pygame,Py2exe,我制作了一个py2exe可执行文件,这是一个“编程测试”。它是在pygame中制作的,当我以EXE的形式运行它时,它会一直工作到最后。我想是因为结尾有pygame文本。错误如下。下面是代码的一部分,它不是作为exe,而是作为普通的.py: def endgame(): global programmer if programmer < 0: programmer = 0 font = pygame.font.SysFont(None, 25)
def endgame():
global programmer
if programmer < 0:
programmer = 0
font = pygame.font.SysFont(None, 25)
text = font.render("You are: " + str(programmer) + "% a programmer.", True, black)
gameDisplay.blit(text, (170,200))
def endgame():
全球程序员
如果程序员<0:
程序员=0
font=pygame.font.SysFont(无,25)
text=font.render(“您是:”+str(程序员)+%a程序员。”,真,黑色)
gameDisplay.blit(文本,(170200))
错误:
C:\Python27\Programming Survey\dist>survey.exe
survey.exe:43: RuntimeWarning: use font: DLL load failed: The specified module c
ould not be found.
(ImportError: DLL load failed: The specified module could not be found.)
Traceback (most recent call last):
File "survey.py", line 223, in <module>
File "survey.py", line 217, in main
File "survey.py", line 43, in endgame
File "pygame\__init__.pyc", line 70, in __getattr__
NotImplementedError: font module not available
(ImportError: DLL load failed: The specified module could not be found.)
C:\Python27\Programming Survey\dist>Survey.exe
survey.exe:43:运行时警告:使用字体:DLL加载失败:指定的模块c
不可能找到。
(导入错误:DLL加载失败:找不到指定的模块。)
回溯(最近一次呼叫最后一次):
文件“survey.py”,第223行,在
文件“survey.py”,第217行,主
文件“survey.py”,第43行,在尾声中
文件“pygame\\ uuuuu init\ uuuuuu.pyc”,第70行,在\uuuu getattr中__
未实现错误:字体模块不可用
(导入错误:DLL加载失败:找不到指定的模块。)
好的,您的问题是您正在尝试使用pygame.font
,但是您的pygame安装不包括该模块
比如说:
此模块是可选的,需要SDL\u ttf
作为依赖项。在尝试使用模块之前,您应该测试pygame.font
是否可用并已初始化
实际上,它可能无法加载的原因有两个:
SDL\u ttf
(或者显式禁用它,或者安装了预编译的二进制文件来执行这些操作之一),因此PyGame甚至没有内置支持SDL\u ttf
构建了一个DLL,但该DLL在运行时不可用pygame.font
*如果您的问题是#1,您将需要重建pygame(或获得不同的二进制安装)。如果是#2,则需要以与安装其他SDL dll相同的方式安装SDL#u ttf.dll
如果您不确定,请先尝试#2,如果它仍然不起作用,则需要新的PyGame版本
如果你知道你在做什么(或者只是想想,无论是谁构建了你的二进制文件,都可能包含了对它的支持,而不是<代码> PyPrase.Frave<代码> >),你可能需要考虑使用(有稍微不同的接口)或<代码> PyPrase.ftFooG/<代码>。(几乎完全替代了
pygame.font
构建在pygame.freetype
)上。您甚至可能想要os.putenv('pygame\u freetype','1'))
或类似版本,这使得更新版本的pygame.font
可以尝试将pygame.ftfont
作为备用版本。但所有这些都可能与Linux用户比Windows用户更相关。还要注意的是,直到1.9.2,它才包含在标准版本中,截至2014年12月5日,它们还没有发布1.9.2的正式版本 改用pygame2exe修复了这个问题,它也使用py2exe,但是它有字体DLL和类似的预加载,所以它可以工作。调试类似的东西的一种方法是从控制台运行.exe。如果这不起作用,它只是创建了一个新的控制台,只需在主代码周围使用try:/finally:
就可以了input()
最后,这样你就有机会在窗口关闭之前看到它打印出来的内容。谢谢,错误帖子你从哪里获得PyGame,以及你是如何安装的?我从主站点获得它,并像普通一样安装它。它作为一个.py文件工作。正如你所知,它作为一个普通的.py文件工作。我已经尝试将SDL_ttf.dll文件放入t他是dist文件夹,没有骰子。它只是说dll未能以.exe文件形式加载,这令人困惑。@HunterKepley:那么问题是dll没有通过py2exe
捆绑到正确的位置。这可能很难做到正确,但如果你做得不对,你就会遇到这个问题。