2013-03-01 77 views
0

我使用适合我的Python版本的Python 2.4和py2exe版本。我想要执行的文件位于setup.py文件所在目录的Python 2.4文件夹中。Py2exe令人困惑的错误

当我运行脚本(以cmd)c:\Python24\python.exe setup.py py2exe时,我在我的cmd中获得了一堆文本,并且在图片中可以看到错误。模块丢失,无法执行文件。我一直有这个问题很长一段时间,我不知道如何解决它。我需要让我的程序可执行。

任何想法如何解决这个问题?

Error Image

编辑:我试图用Python和pygame的和Py2exe新版本(2.6,2.7,3.2),并没有奏效。我总是遇到这些错误:S 另外,我已经试过cx_Freeze,再次是相同的:/

+2

为什么选择Python 2.4?控制台窗口显示你缺少的东西。 – Blender 2013-03-01 07:54:31

+0

当您在Windows上工作时,一些缺失的框架(Foundation和AppKit)是Mac框架。 – robertklep 2013-03-01 07:55:49

+0

是的,但是如何防止这个错误呢? – lbartolic 2013-03-01 08:00:27

回答

0

数周(甚至之前有这个问题)我很高兴地说,我解决了这个问题后, ! :)我的问题(http://i.stack.imgur.com/WpkjR.png)的

第1部分: 我通过编辑setup.py脚本加入“排除”在这部分解决了这个问题。这导致了可执行文件的成功制作!

修改setup.py脚本:

from distutils.core import setup 
import py2exe 
setup(windows=['source_static.py'], options={ 
      "py2exe": { 
       "excludes": ["OpenGL.GL", "Numeric", "copyreg", "itertools.imap", "numpy", "pkg_resources", "queue", "winreg", "pygame.SRCALPHA", "pygame.sdlmain_osx"], 
       } 
      } 
    ) 

所以,如果你有类似的问题,只是把那些“失踪”的模块到这个“不包括”行。

第2部分:

我成功的可执行文件的制作后,我有一个问题:应用程序已请求运行时终止它以不同寻常的方式,请联系...。经过几天和几天的搜索和思考如何解决这个问题,我找到了一个办法。我不敢相信这个问题太荒唐了。这个问题在我的代码,与字体定义:

font1 = pygame.font.SysFont(None, 13) 

改变“”一些系统字体的名称(一个例子“宋体”(必须是一个字符串)),并编译之后,我不能不相信我的.exe文件起作用了!

font1 = pygame.font.SysFont("Arial", 13) 

当然,您可以使用自己的字体,但必须指定其路径并在程序中定义它的路径。

因此,对于所有遇到此问题的人,请尝试这些步骤,并希望您能成功。 我真的希望这会对你有所帮助,因为我已经花了几天和几周的时间去解决这些问题。我甚至尝试使用所有版本的python和pygame创建我的.exe文件,还有许多其他的.exe构建器和安装脚本,但没有运气。除了这些问题之外,我还遇到过许多其他问题,但我在stackoverflow.com上找到了答案。

我很高兴我找到了一种方法来解决这个问题,并帮助你,如果你面对同样的问题。

小tips(事我也做):

1:更新您的Microsoft Visual C++库到最新版本。

第二种:如果您的图像或字体类似于您的可执行程序需要,请将它们包括到dist文件夹(您的.exe文件已创建的位置)。

第3步:当您制作.exe文件时,将所有需要的文件包含到setup.py脚本所在的文件夹(主脚本使用的所有文件和目录)中。

使用Python 2.7版的x64pygame的py2exe