Запускаємо OpenGL на python3 (ubuntu)
Ліричний відступ
Кілька місяців тому вирішив таки вивчити Python. Але ... тільки сунувшись у все це середовище, переді мною став вибір: вивчати відносно новий python3 або python2.7. Вибір упав у бік python 3, нехай на ньому працює лише мала кількість того, що вже є під python2.7, та й просто цікаво було взяти участь у розвитку мови. Нещодавно постала потреба візуалізації деяких даних (саме в openGL), тому було вирішено розібратися, що і як зібрати все воєдино і розповісти про це хабражителям. Стаття орієнтована в першу чергу на новачків у python (таких як я), і написана в стилі «встанови те й те», тому прохання старожилам не кидатися тапками і поставитися з розумінням.
Готуємось
Оскільки нам доведеться збирати бібліотеки, нам потрібно поставитиpython3-dev.python3-setuptoolsнам потрібний для встановленняeasy_install3. Ставимо:
Тепер можна й бібліотеки зібрати.
Бібліотеки
Ставимо pip для python3 через встановленийeasy_install3:
pipвстановлений, тепер можна збирати потрібні нам бібліотеки:
(на момент встановлення актуальною версією pip була 3.2, у минулому, майбутньому або паралельному всесвіті це число може відрізнятися). Для роботи модуля OpenGL.GLUT ставимо freeglut:
Тепер все готове, і можна спробувати запускати приклади.
Не все так просто
Йдемо на сайт http://nehe.gamedev.net/tutorial, вивчаємо приклади, качаємо код на python, перевіряємо працездатність на python2.7 (якщо встановлені бібліотеки OpenGL для pytohn2.7 - все робиться аналогічним чином, pip install numpy PyOpenGL . Качаємо, наприклад, другий приклад, перевіряємо:

Переробляємо його за допомогою утиліти 2to3 (на початку це додавання дужок до print ):
, але й тут на нас чекає сюрприз:
Щоб все злетіло, нам потрібно передати аргументи командного рядка в glutInit():
Запускаємо ще раз:
Так-так-так, а це що ще ... Після недовгого ковтання виявляємо, що заголовок вікна має бути байтовим рядком, відповідно, додаємо «b» перед рядком:

українські літери, на жаль, не підтримують (мені було особливо не потрібно, тому я не став розбиратися). Ну і можна порадіти працюючому OpenGL на нашій конячці:)
