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.