我不能在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转换它吗?
答案 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解释器,一切正常。