通过Mac在PyPy中安装Pygame

时间:2012-05-21 07:39:15

标签: osx-lion pygame pypy

我尝试在Mac OSX Lion上为PyPy安装Pygame版本1.9.1release。我首先使用pypy config.py运行了pypy setup.py install。我将配置添加到安装过程,因为我看到它正在尝试使用普通的python进行配置(安装正确,但导致导入错误)。在安装过程中,有许多警告,例如:

src/overlay.c:44:5: warning: implicit declaration of function 'PyObject_Free' is invalid in C99 [-Wimplicit-function-declaration]
PyObject_Free ((PyObject*)self);
^

但它也为我提供了两个类似的错误:

    In file included from src/scale_mmx.c:33:
src/scale_mmx64.c:424:27: error: invalid instruction mnemonic 'movsxl'
        asm __volatile__( " /* MMX code for inner loop of X bilinear filter */ "
                          ^
<inline asm>:1:191: note: instantiated into assembly here
         /* MMX code for inner loop of X bilinear filter */  movl             -36(%rbp),      %ecx;            pxor          %mm0,      %mm0;           1:                                           movsxl         (%rdi), ...
                                                                                                                                                                                                     ^~~~~~
In file included from src/scale_mmx.c:33:
src/scale_mmx64.c:499:27: error: invalid instruction mnemonic 'movsxl'
        asm __volatile__( " /* MMX code for inner loop of X bilinear filter */ "
                          ^
<inline asm>:1:191: note: instantiated into assembly here
         /* MMX code for inner loop of X bilinear filter */  movl             -36(%rbp),      %ecx;            pxor          %mm0,      %mm0;           1:                                           movsxl         (%rdi), ...
                                                                                                                                                                                                     ^~~~~~
2 errors generated.

对我来说,PyPy卡在一条线上,这似乎是C中的块注释,这似乎很愚蠢。为什么它将asm和volatile中的注释封装在我之外。但这是提供给我的代码,并在常规python中工作。这是一个错误吗?或者我错过了什么?

1 个答案:

答案 0 :(得分:2)

有可能PyPy有一些#defines与CPython不同(出于好的或坏的原因)而pygame选择使用其他东西(基于一个经过深思熟虑的#else和隐含的假设)试图编译无效的C.我是只是猜测,你需要遵循为什么以及如何在CPython上编译相同的代码。