我已经将我设计的python游戏转换为exe。运行 exe 本身会导致它闪烁然后关闭,这意味着发生了错误。从命令提示符运行它也会导致错误,但记录它:
Cannot load image: Playfield.png
Couldn't open images\Playfield.png
这告诉我该load_image
块失败了。我之前没有images
目录时遇到过这种情况。
我试图将images
文件夹移动到dist
目录。这是显示的错误:
Traceback (most recent call last):
File "Table_Wars.py", line 728, in <module>
File "Table_Wars.py", line 51, in main
File "Table_Wars.py", line 236, in __init__
File "pygame\__init__.pyc", line 70, in __getattr__
NotImplementedError: font module not available
(ImportError: DLL load failed: The specified module could not be found.)
这是我第一次使用 py2exe,所以我不太确定发生了什么。原始 python 文件本身 Table_Wars.py 按预期运行。
如果有帮助,整个 Table_Wars 文件夹的位置位于我的桌面上名为 Games 的文件夹中 (C:\Users\Oventoaster\Desktop\Games\Table_Wars)。我正在运行 Windows 7 32 位操作系统。
根据要求,这是我生成的 output.txt:
Folder PATH listing for volume OS
Volume serial number is 7659-4C9C
C:\USERS\OVENTOASTER\DESKTOP\GAMES\TABLE_WARS
build
bdist.win32
winexe
bundle-2.7
collect-2.7
ctypes
distutils
email
mime
encodings
logging
multiprocessing
dummy
pygame
threads
unittest
xml
parsers
temp
dist
images
这是我用来转换文件的 setup.py:
from distutils.core import setup
import py2exe
setup(console=['Table_Wars.py'])
编辑:我试图使用完整的 py2exe 示例。这将创建 exe,但给出相同的Cannot load image
错误。尝试将images
文件夹放在与 exe 相同的文件夹中会创建一个Runtime Error: The application requested the runtime to terminate it in an unusual way.
Slace Diamond 建议的代码的缩短形式可防止 py2exe 找到Table_Wars.py
:
从命令:
running py2exe
*** searching for required modules ***
error: Table_Wars.py: No such file or directory.
setup
并且Table_Wars
在同一个目录中。如果有帮助,我输入 python.exe 和 setup.py 的完整路径。
编辑:我似乎越来越近了。我把images
目录放在里面self.extra_datas
,现在我得到了:
Fatal Python error: (segmentation fault)
This application has requested the runtime to terminate it in an unusual way. Please contact the application's suppourt team for more information