Pyglet 1.2alpha1不适用于Python 3.3.0

时间:2013-01-19 20:32:09

标签: python-3.x pyglet

我不能在Python 3中使用Pyglet 1.2alpha1(它应该可以在Py3下运行)。

我按照说明正确安装,但它不能在Py3上运行,但我知道我安装了一切正确,因为我可以在Python 2.7中使用它。

每次我尝试使用解释器导入piglet时,都会收到此错误:

>>> import pyglet

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "./pyglet/__init__.py", line 276
    print '[%d] %s%s %s' % (thread, indent, name, location)
                   ^
SyntaxError: invalid syntax

阅读errore消息很明显,错误是在用Python 2样式(print foo而不是print(foo))编写的打印中。

所以我的问题是:在Python 3下运行pyglet是真的吗?

我知道正确使用它的人,所以我该怎么办?可能是因为网站上有错误的Pyglet版本?我应该用2to3转换它吗?

3 个答案:

答案 0 :(得分:6)

我已经使用Pyglet 1.2alpha1在带有Python 3.3.2的Windows 8上工作。 (除了不同的文件夹路径之外,该方法在linux上应该是相同的)

问题是当你运行python setup.py install时,看到"skipping implicit fixer"之后的前几行,它似乎会挂起很长时间。如果然后关闭终端/ bash窗口(从而中止安装过程)然后再次运行setup.py,它将跳过2to3转换并简单地安装py2源文件。

明显“挂起”的原因是2to3只需要一段时间来转换文件,但是如果你等待足够长的时间,转换就会发生,它将正确转换并安装模块。

如果您已经安装了一次,则必须删除一些文件夹才能使安装正常工作。

首先,删除1.2alpha1源文件夹中的构建文件夹:%unzip_folder%\pyglet-1.2alpha1\build (其中unzip_folder是解压缩Pyglet 1.2alpha1源的文件夹)

同时从python Lib中删除 pyglet 文件夹:%python%\Lib\site-packages\pyglet (其中%python%是python安装文件夹,在Windows上默认为C:\ Python33)

然后运行python setup.py install。它应该完成所有步骤(复制要构建的文件,使用2to3进行转换,最后进行字节编译到Lib子文件夹)。

答案 1 :(得分:1)

Pyglet 1.2 alpha只是“python3 ready”,即它不能用python3开箱即用,但必须通过2to3转换。 (转换后,它将不再与python2一起运行。)

要在python2和python3项目中使用pyglet,我总是将pyglet复制到项目的子文件夹中(如果我想将它与python3一起使用,则将其转换为2to3)。

答案 2 :(得分:0)

我遇到同样的问题: Windows 8 Python 3.3.2 Pyglet 1.2alpha1
我环顾四周,但直到现在还没有找到解决方案。

我安装了 2.7.5 Python版本,将之前的 Python.exe 文件(3.3.2版本之一)更改为 Python33.exe 并相应调整PATH环境变量。 然后我在2.7版本中安装了Pyglet 1.1.4 (来自命令行,可执行文件也有更多错误)。

我使用Eclipse,所以我在PyDev设置中添加了Interpeter。 现在,如果我使用Python27解释器,一切正常。