Hello Michal,

I've also had this error some times ago, I do not remember if I succeed with pyuic4, nor the solution.

But IMHO it is simpler to load "ui" files at runtime.
Here is an example from "processing" plugin :

import os
from qgis.PyQt import uic

pluginPath = os.path.split(os.path.dirname(__file__))[0]
WIDGET, BASE = uic.loadUiType(
    os.path.join(pluginPath, 'ui', 'DlgConfig.ui'))

class ConfigDialog(BASE, WIDGET):


=> no need to run make or similar to create python files each time you change something in your ui files.

load the plugin from the source folder (create a symbolic link from home QGIS plugins dir to plugin source dir)
change something in the ui file
reload the plugin using "plugin reloader" and you immediately see the result in QGIS.

Regards

Arnaud Morvan
Ingénieur logiciel
Tél: +33 (0)4 58 48 20 32

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac Cedex
http://www.camptocamp.com

Le 11/05/2017 à 12:44, Michal Zimmermann a écrit :
Hi,
I'm starting with qgis plugin development on ubuntu-based Mint OS (v 18.1 Serena). I created a very simple form in Qt Designer 4.8.7 and tried to convert it to python file with

pyuic4 -d form.ui -o form.py

This results in

Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/PyQt4/uic/port_v2/invoke.py", line 34, in invoke
    exit_status = driver.invoke()
File "/usr/lib/python2.7/dist-packages/PyQt4/uic/driver.py", line 59, in invoke
    self._generate()
File "/usr/lib/python2.7/dist-packages/PyQt4/uic/driver.py", line 98, in _generate
    self._opts.resource_suffix)
File "/usr/lib/python2.7/dist-packages/PyQt4/uic/__init__.py", line 173, in compileUi winfo = compiler.UICompiler().compileUi(uifile, pyfile, from_imports, resource_suffix) File "/usr/lib/python2.7/dist-packages/PyQt4/uic/Compiler/compiler.py", line 55, in __init__
    CompilerCreatorPolicy())
File "/usr/lib/python2.7/dist-packages/PyQt4/uic/uiparser.py", line 170, in __init__
    self.factory = QObjectCreator(creatorPolicy)
File "/usr/lib/python2.7/dist-packages/PyQt4/uic/objcreator.py", line 94, in __init__
    modinfo = plugin_locals["moduleInformation"]()
  File "<string>", line 52, in moduleInformation
File "/usr/lib/python2.7/dist-packages/qgis/__init__.py", line 26, in <module>
    from qgis.PyQt import QtCore
File "/usr/lib/python2.7/dist-packages/qgis/PyQt/QtCore.py", line 28, in <module>
    sip.setapi(api, 2)
ValueError: API 'QDate' has already been set to version 1

If I change /usr/lib/python2.7/dist-packages/qgis/PyQt/QtCore.py line 28 to sip.setapi(api, 1), it works, QGIS starts with a following message though:

Couldn't load PyQGIS.
Python support will be disabled.

Traceback (most recent call last): File "", line 1, in File "/usr/lib/python2.7/dist-packages/qgis/__init__.py", line 26, in from qgis.PyQt import QtCore File "/usr/lib/python2.7/dist-packages/qgis/PyQt/QtCore.py", line 28, in sip.setapi(api, 1) ValueError: API 'QDate' has already been set to version 2

Python version:
2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609]

QGIS version:
2.18.7 'Las Palmas', 3b30e6a


What exactly do I have to do to make the both sides work?

--
Michal Zimmermann (zimmi)
WWW: https://www.zimmi.cz


_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to