Здравствуйте, я тоже пытаюсь собрать PythonQt под Windows(у меня Windows 7 sp1 32). Версия qt sdk 1.2 . Python 2.6.6 .PythonQt2.0.1
Я действовал по инструкции sergek'a.
1) Скачал qt sdk 1.2 , установил его в C:\QtSDK. Mingw в нем уже был, но я решил поставить, скачал последнюю версию и установил в C:\MinGW.
2) Установил Python 2.6.6 из дистрибутива
http://www.python.org/ftp/python/2.6.6/python-2.6.6.msi в каталог по умолчанию C:\Python26
3) утилиты pexports у меня не было, скачал ее отдельно поставил в C:\pexports.
чтобы они опознавались в командной строке Qt , Madde Terminal добавил в системную переменую PATH адреса для pexports, mingw.
после этого в командной строке Qt , Madde Terminal, смог выполнить указанные команды:
C:\windows\system32>cd C:\Python26\libs
python26.dll у меня был расположен по следующему адресу C:/Windows/System32/python26.dll поэтому вторая строка изменилась следующим образом.
C:\Python26\libs> pexports C:/Windows/System32/python26.dll >python26.def
C:\Python26\libs> dlltool --dllname python26.dll --def python26.def --output-lib libpython26.a
4) Результатом этих шагов я получил библиотеку импорта libpython26.a
5) Далее я скорректировал def-файлы в каталоге C:\PythonQt2.0.1\build указанным образом:
python.prf - указываем в явном виде каталоги и файлы. Сюда же прописываем путь до исходников PythonQt (наверное, это не очень здорово, но зато работает под Windows7). Поскольку отладочной версии питона в дистрибутиве нет, то для отладки и релиза используем одну и ту же библиотеку импорта:
Код:
win32:INCLUDEPATH += c:/Python26/include C:/PythonQt2.0.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
указал конфигурацию проэкта для qt:
Профиль Qt - Qt 4.7.4 for Desktop - MinGW 4.4 (Qt SDK);
Каталог сборки - C:\PythonQt2.0.1;
Запускаю собрать все. В процессе сборки появилось две ошибки:
1) C:\PythonQt2.0.1\src\PythonQtConversion.cpp:677: ошибка: invalid conversion from 'Py_UNICODE*' to 'const ushort*'
2) C:\PythonQt2.0.1\src\PythonQtConversion.cpp:1045: ошибка: invalid conversion from 'const ushort*' to 'const Py_UNICODE*'
От второй ошибки можно избавиться следующим способом:
в PythonQtConversion.cpp:1045 в PythonQtConv::QStringToPyObject()
найти
#ifdef WIN32
//return PyString_FromString(str.toLatin1().data());
return PyUnicode_FromUnicode(str.utf16(), str.length());
нужно сделать так
#ifdef WIN32
return PyString_FromString(str.toLatin1().data());
// return PyUnicode_FromUnicode(str.utf16(), str.length());
это решает вторую ошибку и убирает куча ворнингов.
Избавиться от первой мне так и не удалось помогите пожалуйста!!!