Конфликт при преобразовании dialog.ui в dialog.py с QGIS

Я установил QGIS 2.18.11 в Linux Mint 18.2 без проблем. Я могу запустить QGIS, но когда я хочу преобразовать dialog.ui в dialog.py с помощью pyuic4 -o dialog.py dialog.ui в терминале, я получил следующую ошибку:

Произошла непредвиденная ошибка. Убедитесь, что вы используете последнюю версию PyQt, и отправьте отчет об ошибке на адрес [email protected], включая следующую информацию:

  • ваша версия PyQt (4.11.4)
  • файл пользовательского интерфейса, вызвавший эту ошибку
  • вывод отладки pyuic4 (используйте флаг -d при вызове pyuic4)

в pyuic4 -o dialog.py dialog.ui -d я получил следующую ошибку:

Traceback (последний последний вызов):

Файл "/usr/lib/python2.7/dist-packages/PyQt4/uic/port_v2/invoke.py", строка 34, в invoke exit_status = driver.invoke()

Файл "/usr/lib/python2.7/dist-packages/PyQt4/uic/driver.py", строка 59, в вызове self._generate()

Файл "/usr/lib/python2.7/dist-packages/PyQt4/uic/driver.py", строка 98, в _generate self._opts.resource_suffix)

Файл "/usr/lib/python2.7/dist-packages/PyQt4/uic/init.py", строка 173, в compileUi winfo =compiler.UICompiler().compileUi(uifile, pyfile, from_imports, resource_suffix)

Файл "/usr/lib/python2.7/dist-packages/PyQt4/uic/Compiler/compiler.py", строка 55, в init CompilerCreatorPolicy())

Файл "/usr/lib/python2.7/dist-packages/PyQt4/uic/uiparser.py", строка 170, в init self.factory = QObjectCreator(creatorPolicy)

Файл "/usr/lib/python2.7/dist-packages/PyQt4/uic/objcreator.py", строка 94, в init modinfo = plugin_locals"moduleInformation"

Файл "", строка 52, в moduleInformation

Файл "/usr/lib/python2.7/dist-packages/qgis/init.py", строка 26, из qgis.PyQt import QtCore

Файл "/usr/lib/python2.7/dist-packages/qgis/PyQt/QtCore.py", строка 28, в sip.setapi(api, 2)

ValueError: API "QDate" уже установлен на версию 1

В следующей попытке я использовал следующие команды в терминале:

sudo apt-get remove --purge python-qt4
sudo apt-get clean
sudo apt-get install python-qt4
sudo apt install pyqt4-dev-tools

На этом этапе я мог преобразовать dialog.ui в dialog.py с помощью команды pyuic4 -o dialog.py dialog.ui, но когда я хочу запустить QGIS, он удаляется из Linux. Как я могу решить эту проблему?


person HMadadi    schedule 20.08.2017    source источник
comment
Как вы установили QGIS и каковы были ваши требования?   -  person eyllanesc    schedule 20.08.2017
comment
Я установил QGIS на основе http://www.youtube.com/channel/UCcSNQL8HppF5uD2KRkn1Obw. Я хочу создать плагин QGIS, поэтому мне нужно скрыть файл qt.ui, разработанный дизайнером qt, в файл python.   -  person HMadadi    schedule 21.08.2017
comment
Напишите ссылку на видео, а не на канал на YouTube, также было бы полезно, если бы вы описали шаги в своем вопросе.   -  person eyllanesc    schedule 21.08.2017
comment
Извините, youtube.com/watch?v=M0fWYrk2NRE.   -  person HMadadi    schedule 21.08.2017
comment
Я рекомендую вам следовать шагам, которые вы используете официально, или скомпилировать код напрямую, потому что в вашем случае это проблема библиотек. qgis.org/en/site/forusers/alldownloads.html# дебиан-убунту   -  person eyllanesc    schedule 21.08.2017
comment
В вашей ссылке есть две ссылки http://qgis.org/debian и http://qgis.org/ubuntugis, которые я использовал вторыми на основе видео. Есть ли между ними разница?   -  person HMadadi    schedule 21.08.2017


Ответы (1)


Не уверен насчет Mint, но у меня установлены python-qt4 и pyqt4-dev-tools 4.11.4 из стабильного репозитория Debian Stretch, а QGIS 2.18.26 установлен из официального репозитория QGIS, и у меня была та же ошибка.

QGIS также поставляет свою собственную сборку PyQt4, которая, по-видимому, вызывает этот конфликт. Неэлегантный, но эффективный способ — просто использовать версию инструмента pyuic4, которая поставляется с QGIS:

python /usr/lib/python2.7/dist-packages/qgis/PyQt/uic/pyuic.py my_widget.ui
person taskalman    schedule 03.12.2018