Pyglet 1.2alpha1 не работает на Python 3.3.0

Я не могу использовать Pyglet 1.2alpha1 (который должен работать под Py3) из Python 3.

Я выполнил инструкции и установил их правильно, но он не запускается на 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)).

Итак, мой вопрос: действительно ли можно запустить pyglet под Python 3?

Я знаю людей, которые правильно его используют, так что мне делать? Может быть, что на сайте есть неправильная версия Pyglet? Должен ли я преобразовать его с помощью 2to3?

Ответ 1

Я получил Pyglet 1.2alpha1 для работы с Windows 8 с Python 3.3.2. (Метод должен быть таким же в linux, кроме разных путей папки)

Проблема заключается в том, что при запуске python setup.py install он будет долгое время зависать после того, как вы увидите первые несколько строк, следующих за "skipping implicit fixer". Если вы затем закроете окно терминала /bash (таким образом прекратите процесс установки), а затем запустите setup.py еще раз, он пропустит преобразование 2to3 и просто установит исходные файлы py2.

Причиной очевидной "зависания" является то, что для преобразования файлов просто требуется некоторое время для 2to3, но если вы подождете достаточно долго, преобразование произойдет, и оно будет правильно преобразовывать и устанавливать модуль.

Если вы уже установили это один раз, вам нужно будет удалить несколько папок для нормальной работы программы.

Сначала удалите папку build в исходной папке 1.2alpha1: %unzip_folder%\pyglet-1.2alpha1\build (где unzip_folder - папка, в которой вы разархивировали источник Pyglet 1.2alpha1)

Также удалите папку pyglet из python Lib: %python%\Lib\site-packages\pyglet (где% python% - папка установки python, по умолчанию - C:\Python33 в Windows)

Затем запустите python setup.py install. Он должен пройти все этапы (копирование файлов для сборки, преобразования с использованием 2to3 и, наконец, байтового компиляции в подпапку Lib).

Ответ 2

Pyglet 1.2 alpha является только "готовым python3", то есть он не будет запускаться с python3 из коробки, но должен быть преобразован через 2to3. (После преобразования он больше не будет работать с python2.)

Чтобы использовать pyglet с python2 и python3, я всегда копирую pyglet в подпапку проекта (и конвертирую его с 2to3, если я хочу использовать его с python3).

Ответ 3

У меня та же проблема: Windows 8, Python 3.3.2 и Pyglet 1.2alpha1.
Я много оглядываюсь, но до сих пор решения не найдены.

Я установил версию 2.7.5 Python, изменил предыдущий файл Python.exe(версию 3.3.2) на Python33.exe и соответствующим образом скорректировал переменные среды PATH. Затем я установил Pyglet 1.1.4 (из командной строки, у исполняемого файла также больше ошибок) в версии 2.7.

Я использую Eclipse, поэтому я добавил Interpeter в настройки PyDev. Пока все работает нормально, если я использую интерпретатор Python27.