Обещанный рецепт сборки PythonQt (232 revision).
1) Используем Qt SDK 1.2.1 (Open Source), установленный в C:\QtSDK, Windows 7 домашняя базовая 64 бит. Для WinXP примерно все то же самое.
2) Скачиваем архив с утилитами mingw (MinGW Utilities 0.3 Windows Binary)
http://olex.openlogic.com/packages/mingw-utils/0.3#package_detail_tabsРазархивируем каталоги bin и doc полученного архива в соответствующие каталоги C:\QtSDK\mingw\bin и doc.
3) Ставим Python 2.6 из дистрибутива в каталог по умолчанию C:\Python26
http://www.python.org/ftp/python/2.6.6/python-2.6.6.msi4) В командной строке из состава Qt SDK переходим в каталог C:\Python26\libs и выполняем:
Setting up environment for Qt usage...
C:\windows\system32>cd C:\Python26\libs
C:\Python26\libs>pexports C:\Windows\SysWOW64\python26.dll >python26.def
C:\Python26\libs>dlltool --dllname python26.dll --def python26.def --output-lib libpython26.a
При использовании утилиты pexports путь до dll указывать нужно, иначе получим ошибку "pexports: python26.dll: could not load PE image".
Для dlltool это не обязательно. Путь у меня указан для Windows7. В WinXP библиотека лежит в system32.
Результатом этих шагов является библиотека импорта libpython26.a, которую и будем использовать для сборки PythonQt.
5) Скачиваем исходники PythonQt из SVN репозитория (дистрибутив весьма устарел):
http://pythonqt.svn.sourceforge.net/viewvc/pythonqt/и разархивируем в каталог C:\PythonQt2.1
6) Корректируем def-файлы в каталоге C:\PythonQt2.1\build.
python.prf - указываем в явном виде каталоги и файлы. Сюда же прописываем путь до исходников PythonQt (наверное, это не очень здорово, но зато работает под Windows7). Поскольку отладочной версии Питона в дистрибутиве нет, то для отладки и релиза используем одну и ту же библиотеку импорта:
win32:INCLUDEPATH += c:/Python26/include C:/PythonQt2.1/src
win32:LIBS += c:/Python26/libs/libpython26.a
common.prf - раскомментируем строку (хотя это можно и не делать, наверное - собирать будем в креаторе):
CONFIG += debug_and_release build_all
PythonQt.prf - корректируем имя и расширение библиотеки:
win32::LIBS += $$PWD/../lib/libPythonQt$${DEBUG_EXT}.a
PythonQt_QtAll.prf - то же самое:
win32::LIBS += $$PWD/../lib/libPythonQt_QtAll$${DEBUG_EXT}.a
7) Запускаем Qt Creator и открываем проект C:\PythonQt2.1\PythonQt.pro. При открытии выбираем создание конфигурации одной отладочной и одной релизной сборки для профиля "Qt 4.8.1 for Desktop - MinGW (Qt SDK)", каталог сборки - C:\PythonQt2.1.
Сохраняем и выполняем qmake. Обратите внимание - будет создан каталог C:\PythonQt2.1\lib, там будут размещаться собранные библиотеки и исполняемые файлы примеров.
8 ) Корректируем исходники для обеспечения поддержки UTF-8 - заменяем toLatin1 на toAscii (см.
http://sourceforge.net/projects/pythonqt/forums/forum/631392/topic/3805500 ):
PythonQtScriptingConsole.cpp (PythonQtScriptingConsole::executeCode, 183):
p.setNewRef(PyRun_String(code.toAscii().data(), Py_single_input, dict, dict));
PythonQt.cpp (PythonQt::evalScript, 727):
p.setNewRef(PyRun_String(script.toAscii().data(), start, dict, dict));
9) Выполняем команду "Собрать все". После завершения в каталоге C:\PythonQt2.1\lib будут размещены файлы библиотек (.a и .dll) и исполняемых файлов примеров.
Все.