10

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

我按照说明正确安装了它,但它不能在 Py3 上运行,但我知道我安装了所有东西,因为我可以从 Python 2.7 使用它。

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

>>> 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

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

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

我知道有人正确使用它,那我该怎么办?会不会是网站上传的Pyglet版本不对?我应该用2to3转换它吗?

4

3 回答 3

6

我已经让 Pyglet 1.2alpha1 在 Windows 8 上使用 Python 3.3.2 工作。(linux上的方法应该是一样的,只是文件夹路径不同)

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

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

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

首先,删除1.2alpha1 源文件夹中的build%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 子文件夹)。

于 2013-09-04T19:01:48.267 回答
1

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

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

于 2014-05-27T13:14:48.543 回答
0

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

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

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

于 2013-07-15T10:43:36.077 回答