[QGIS-Developer] QGIS PyQt version conflict

Michal Zimmermann zimmicz at gmail.com
Thu May 11 22:34:58 PDT 2017


Hi,
that looks like an interesting workaround! What are the pitfalls? Don't you
need to see the real python code when developing?

On Thu, May 11, 2017 at 1:55 PM, Arnaud Morvan <arnaud.morvan at camptocamp.com
> wrote:

> 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 <+33%204%2058%2048%2020%2032>
>
> Camptocamp France SAS
> Savoie Technolac, BP 352
> 73377 Le Bourget du Lac Cedexhttp://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 listQGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
>


-- 
Michal Zimmermann (zimmi)
WWW: https://www.zimmi.cz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20170512/f3a7455a/attachment-0001.html>


More information about the QGIS-Developer mailing list