pygame和cx_freeze:分割错误

| 我正在使用ubuntu和python 2.6 我发现系统上已经安装了cx Frozen(是否可以检查它是否与我的Python版本兼容?) 但是,我有一个小的pygame脚本(它将导入另一个模块和一些图像),并且我想对其进行编译; 我使用此文件作为setup.py:
#!/usr/bin/python

from cx_Freeze import setup, Executable

setup(
    name = \'Example\',
    version = \'0.1\',
    description=\'hi\',
    executables = [Executable(\'/home/antonio/Python 26 save/opt/example.py\')]
    )
如果我运行生成的可执行文件,(通过终端)我会收到此错误:
Fatal Python error: (pygame parachute) Segmentation Fault
Aborted
我该怎么办?我已经搜索过,但是发现的例子很少,我在Google搜索结果中没有看到此错误 ps当然,在使用cx冻结之前,程序运行完美     
已邀请:
使用python 2.7我遇到了类似的问题。我在自己的程序中发现了造成此分段错误的两个原因,但是我只有一个解决方案。 原因1.初始化没有路径的字体,即调用:
pygame.font.Font(None, font_size)
在这种情况下,valgrind报告???中地址0x0的无效读取。在
pygame.font.so
我猜这是因为None会被转换为NULL指针,然后该指针假定是有效的const char *字符串。 解决此问题的方法是始终提供字体的有效路径。 原因2。呈现字体中的unicode字符
pygame.font.Font(\"data/DejaVuSans.ttf\", 14).render(u\'\\u2654\')
valgrind报告libpython2.7.so.1.0中PyString_AsString中的读取无效 很抱歉,我对此没有解决方案。 PS: 我刚刚发现了另一个与unicode相关(但与pygame不相关)的cxfreeze问题原因。
print u\'\\u2654\'
在python解释器中将打印一个国王(棋子),但是用cxfreeze编译脚本时,出现以下错误(不是分段错误):
UnicodeEncodeError: \'ascii\' codec can\'t encode character u\'\\u2654\' in position 0: ordinal not in range(128)
如果您调用以下命令,也会在python解释器中收到此错误:
print str(u\'\\u2654\')
这似乎表明cxfreeze假定字符串始终是ascii字符串。     
冻结脚本时是否设置了任何优化选项?我不太确定是否执行此操作,但是可能是因为它错误地将变量更改为引用。同样,我不是cx_freeze的专家,但是我的解决方案是更新。您是否拥有(cx_freeze)的最新版本?     
您是否用Google搜索错误信息(http://www.google.com/search?&q=Fatal%20Python%20error%3A%20%28pygame%20parachute%29%20Segmentation%20Fault)并检查了报告相同错误的各种帖子? 例如。 http://www.pyweek.org/d/2976/ http://osdir.com/ml/python.pygame/2001-12/msg00055.html ...     
我一直收到类似的错误,我想我已经找到了解决方案。 我在用
pygame.font.SysFont(None,25)
但是,不要传递None参数,而应该使用系统的字体。 我已经使用Windows机器,所以没有用系统上的任何字体替换任何字体。所以我将其替换为:
pygame.font.SysFont(\"comicsansms\",25)
如您所见,我已用comicsansms代替None,后者是Windows PC上的预装字体 希望它能起作用!     
使用
pygame.font.SysFont(FONT_NAME, FONT_SIZE)
。     

要回复问题请先登录注册