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