Страницы

четверг, 8 ноября 2012 г.

Установка PyQt для Windows, Linux. Maya, Nuke и Houdini

русский | english
В данной статье я опишу методы установки PyQt на компьютер. Рассматриваются варианты установки на операционную систему для написания отдельных независимых приложений, для Maya и Nuke, интерфейс которых так же построен на Qt, и для Houdini, не дружественной но примелемой среды.

Установка PyQt на OS.

Установка PyQt на операционную систему, пожалуй, самая простая.

Windows.

Прежде всего нужно установить сам Python если он не установлен. Скачать можно с официального сайта. Для установки PyQt требуется так же скачать установочный ехе файл с официального сайта и запустить установку. Далее всё практически по умолчанию. Главное скачать версию под ваш интерпретатор Python и проверить путь установки.

Linux

Выполнить команду в терминале:
sudo apt-get install python-qt4

Установка пройдет автоматически. Лично я тестировал только на Ubuntu. Для других дистрибутивов могут быть отличия.

Приведенные выше способы самые простые, если что-то не получается, в интернете легко найти инструкции по установки в различных ситуациях.

Установка PyQt для Maya.

Для того чтобы PyQt работал в Maya, требуется особый дистрибутив, который компилируется отдельно из исходников с сайта Autodesk под конкретную платформу  и версию Maya. Пример инструкции по сборке можно посмотреть здесь или здесь. Но так же можно скачать уже скомпилированные пакеты и просто установить. Чтобы облегчить Вам поиск, я размещу ссылки на те пакеты, которые использую сам. Под другие версии и платформы инсталяторов не имею.

Windows

Установка может быть двух видов. Первый, это обычная установка из exe файла. При этом нужно указать папку не системного интерпретатора python, а интерпретатор самой Maya. Например по такому адресу:

C:\Program Files\Autodesk\Maya2012\Python


И после установки проверить что папка PyQt4 находится по адресу:

C:\Program Files\Autodesk\Maya2012\Python\lib\site-packages\PyQt4

Linux

Обычно это архив с готовыми файлами, их нужно будет вручную скопировать. Например адрес может быть таким:
/usr/autodesk/maya2012x64/lib/python2.6/site-packages

Установка PyQt для Nuke

Здесь ситуация аналогична. Либо используется установочный exe файл, либо архив, который нужно распаковать в нужное место.

На Windows это примерно здесь:
C:\Program Files\Nuke6.3v4\lib\site-packages

На Linux:
/usr/local/Nuke6.3v8/lib/python2.6/site-packages

Установка PyQt для Houdini

Так как в Houdini не используется Qt в качестве движка для построения интерфейса (как это сделано в Maya  и  Nuke), для него подойдет дистрибутив с официального сайта. Главное его так же установить в каталог пакетов интерпретатора Houdini.

Путь установки может быть например таким:

Windows
C:\Houdini12.1.72\python26\lib\site-packages

Linux
/opt/hfs12.1.129/python/lib/python2.6/site-packages
После этого требуется найти файл pyqt_thread_helper.py, который расположен в файлах документации.
C:\Houdini\2.1.72\houdini\help\hom\cookbook\pyqt\part2\pyqt_thread_helper.py

и скопировать его в каталог пакетов python рядом с установленным PyQt.
C:\Houdini12.1.72\python26\lib\site-packages

Этот файл требуется для запуска окон Qt как отдельного процесса, но дочернего от процесса Houdini. Тут нужно заметить, что версию PyQt требуется скачать для Python2.6, так как именно эта версия используется в Houdini (на момент написания статьи).

___________________________

Далее я напишу инструкции для проверки успешности установки PyQt.

Проверка установки в системе Windows и Linux

from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

class qtWindow(QMainWindow):
    def __init__(self):
        super(qtWindow, self).__init__()
        self.show()

if __name__ == '__main__':
app = QApplication(sys.argv)
ex = qtWindow()
sys.exit(app.exec_())

Требуется сохранить его в файл с расширением .py и запустить с помощью интерпретатора, на который устанавливался PyQt. Если открылось окно, значит PyQt установлен успешно. Если нет, всё зависит от полученной ошибки.

Проверка установки для Maya

Следующий код скопируйте в ScriptEditor и выполните
from PyQt4.QtGui import *
import sys

class qtWindow(QMainWindow):
    def __init__(self):
        super(qtWindow, self).__init__()

c = qtWindow()
c.show()

Если окно открылось, то по крайней мере PyQt установлен в правильную директорию. Если возникают ошибки о загрузке модуля PyQt, то установка проведена не верно. Если ошибки рассказывают что-то о не поддерживаемых или не верных классах C++, то установленный пакет PyQt не подходит под текущую версию Maya. Например он от другой версии или установлен оригинальный пакет. Если PyQt точно установлен правильно в нужную директорию python-пакетов интерпретатора Maya, но при этом в переменной PYTHONPATH ссылка на оригинальный пакет, установленный в системе, встречается раньше, то PyQt загрузится системный. Тут можно посоветовать поправить системную переменную Windows или использовать враппер для запуска Maya.

Проверка установки для Houdini

Откройте окно Windows\Python Source Editor и скопируется ниже приведенный код:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import pyqt_thread_helper

class qtWindow(QMainWindow):
    def __init__(self):
        super(qtWindow, self).__init__()

def openUI():
    app = pyqt_thread_helper.getApplication()
    cd = qtWindow()
    cd.show()
    app.exec_()
pyqt_thread_helper.queueCommand(openUI)

Окно не наследует стиля оформления Houdini как в случае с Maya, но я постараюсь рассказать как это можно исправить, написав свой стиль, похожий на Houdini. Так же Окно прячется за интерфейс при потере фокуса. Если в случае с Maya или Nuke данная проблема решается штатными средствами, то с Houdini дела обстоят посложней, но об этом в следующих публикациях.

Проверка для Nuke

Код скопируйте в ScriptEditor и выполните.

from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

class qtWindow(QWidget):
    def __init__(self, parent = QApplication.activeWindow()):
        super(qtWindow, self).__init__(parent)
        self.setWindowFlags(Qt.Window)

c = qtWindow()
c.show() 

_________________________________________________
Предложенные методы не претендуют на абсолютную правильность, достоверность или однозначность. Всегда могут появиться любые проблемы. Ищите в гугле, спрашивайте в комментах.
А теперь обещанные ссылки.

Maya2011 Windows_x64
Maya2012 Windows_x64
4.7.1  for Maya2013 Windows_x64
4.9.1  for Maya2013 Windows x64
В Maya 1014 и выше используйте встроенный модуль PySide
Maya 2012 Lunux x64
Nuke6.3 Windows
Nuke6.3 Linux x64

PyQt для OSX
Installing PyQt4 for Maya 2012+ (osx)

2 комментария: