[PyQt] loadUiType and resources_rc.py in another folder

Denis Rouzaud denis.rouzaud at gmail.com
Mon Jan 20 08:51:41 GMT 2020


Hi Ludovic,

I am not modifying the built resources_rc.py but the import one I am using
in the same directory than the dialog file.
This resources_rc.py only contains the import statement, I have
successfully used this when using pyuic in the past, but it doesn't seem to
work when using loadUiType.

More generally, I am wondering what is the approach when the
resources_rc.py, the ui and the dialog py files are all 3 in
distinct directories.

Cheers,
Denis

Le ven. 17 janv. 2020 à 15:34, Ludovic Bellière <
belliere.ludovic at proximus.be> a écrit :

> Hello Denis,
>
> The resources_rc.py is supposed to be generated with pyrcc5, and
> shouldn't be edited. The structure of your application is weird, and
> apparently the loader is unable to find your resources_rc.py, which
> means you didn't put it where it needs to be. I don't know where it
> needs to be, it depends on the structure of your code, and files within
> your project.
>
> Do you know how python imports works? You see confused on that subject.
> Did you consider building a test PyQt5 app using a flat format, and then
> expand from there?
>
> Cheers,
> Ludovic
>
> PS: sorry about the previous direct e-mail. Still figuring ML stuff out.
>
> On 17/01/20 14:58, Denis Rouzaud wrote:
> > Hi Ludovic,
> >
> > Thanks for the help.
> >
> > I tried to add this in my resources_rc.py in the same path than the
> > dialog py file without success.
> > I also tried in the __init__.py
> >
> > Where is it meant to live?
> >
> > Cheers,
> > Denis
> >
> > Le ven. 17 janv. 2020 à 14:27, Ludovic Bellière
> > <belliere.ludovic at proximus.be <mailto:belliere.ludovic at proximus.be>> a
> > écrit :
> >
> >     Hello Denis,
> >
> >     The compiled resources_rc.py has a bit of code that will inject the
> >     different resources into Qt's database at the time of import. To
> achieve
> >     that, you need to do the import this way:
> >
> >     `from .. import resources_rc`
> >
> >     On 16/01/20 11:29, Denis Rouzaud wrote:
> >     > Hi list,
> >     >
> >     > I have this tree structure:
> >     > - gui
> >     >   |- dialog.py
> >     > - ui
> >     >   |- dialog.ui
> >     > - resources_rc.py
> >     >
> >     > I am trying to use uic.loadUiType with the ui file having a
> resources
> >     > file defined integrated with:
> >     >
> >     > <iconset resource="../resources.qrc">
> >     >
> >
>   <normaloff>:/plugins/qfieldsync/visibility.svg</normaloff>:/plugins/qfieldsync/visibility.svg</iconset>
> >     > </property>
> >     >
> >     >
> >     >
> >     > I have this error:
> >     >
> >     >   File "/Users/denis/Library/Application
> >     >
> >
>  Support/QGIS/QGIS3/profiles/default/python/plugins/qfieldsync/gui/project_configuration_dialog.py",
> >     > line 36, in
> >     >     os.path.join(os.path.dirname(__file__),
> >     > '../ui/project_configuration_dialog.ui'),
> >     >   File
> >     >
> >
>  "/Applications/QGIS3.11.app/Contents/MacOS/../Resources/python/qgis/PyQt/uic/__init__.py",
> >     > line 36, in __loadUiType
> >     >     return __PyQtLoadUiType(*args, **kwargs)
> >     >   File
> >     >
> >
>  "/Applications/QGIS3.11.app/Contents/MacOS/../Resources/python/PyQt5/uic/__init__.py",
> >     > line 201, in loadUiType
> >     >     exec(code_string.getvalue(), ui_globals)
> >     >   File "", line 182, in
> >     >   File
> >     >
> >
>  "/Applications/QGIS3.11.app/Contents/MacOS/../Resources/python/qgis/utils.py",
> >     > line 737, in _import
> >     >     mod = _builtin_import(name, globals, locals, fromlist, level)
> >     > ModuleNotFoundError: No module named 'resources_rc'
> >     >
> >     >
> >     >
> >     >
> >     > I tried to add a resources_rc.py in the gui folder with:
> >     >
> >     > from ..resources_rc import *
> >     >
> >     > but this doesn't help.
> >     >
> >     >
> >     > And if I use the option from_imports=True (in loadUiType), I am
> >     getting:
> >     >
> >     > line 37, in
> >     >     from_imports=True
> >     >   File
> >     >
> >
>  "/Applications/QGIS3.11.app/Contents/MacOS/../Resources/python/qgis/PyQt/uic/__init__.py",
> >     > line 36, in __loadUiType
> >     >     return __PyQtLoadUiType(*args, **kwargs)
> >     >   File
> >     >
> >
>  "/Applications/QGIS3.11.app/Contents/MacOS/../Resources/python/PyQt5/uic/__init__.py",
> >     > line 201, in loadUiType
> >     >     exec(code_string.getvalue(), ui_globals)
> >     >   File "", line 182, in
> >     >   File
> >     >
> >
>  "/Applications/QGIS3.11.app/Contents/MacOS/../Resources/python/qgis/utils.py",
> >     > line 737, in _import
> >     >     mod = _builtin_import(name, globals, locals, fromlist, level)
> >     > KeyError: "'__name__' not in globals"
> >     >
> >     >
> >     >
> >     >
> >     >
> >     > How am I suppose to handle this?
> >     > Thanks,
> >     >
> >     > Denis
> >     >
> >     >
> >     > _______________________________________________
> >     > PyQt mailing list    PyQt at riverbankcomputing.com
> >     <mailto:PyQt at riverbankcomputing.com>
> >     > https://www.riverbankcomputing.com/mailman/listinfo/pyqt
> >     >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20200120/02f84253/attachment-0001.html>


More information about the PyQt mailing list