[QGIS-Developer] segmentation fault in standalone script using PyQGIS
Jacky Volpes
jacky.volpes at oslandia.com
Wed Nov 2 08:50:52 PDT 2022
Hi,
See answers below.
Best regards.
Jacky
Le 31/10/2022 à 17:26, Mélanie Dol via QGIS-Developer a écrit :
> Hi Jacky,
>
> Thank you so much, the segmentation fault has disappeared.
>
> However, my styles don't work. I guess my script can't access to my
> symbols pre-configured. Is there a path to add or anything else ?
You have to specify the QGIS profile directory path in which the symbols
are saved.
For example :
qgs = QgsApplication([], False,
'/home/jacky/.local/share/QGIS/QGIS3/profiles/default')
>
> Another question, how to force a label placement mode to "horizontal" ?
the line "layer_settings.LabelPlacement = 4" should be changed to
"layer_settings.placement = 4"
you can also use the enum : "layer_settings.LabelPlacement =
QgsPalLayerSettings.Placement.Horizontal"
>
> Many thanks and regards,
>
> Mélanie
>
> On 10/31/22 12:14 PM, Jacky Volpes via QGIS-Developer wrote:
>> Hi Mélanie,
>>
>> Thanks for the script, I was able to reproduce the segmentation fault
>> with a dummy gpkg I made.
>>
>> After some investigations, it seems that the symbol named
>> "style_layer" used in
>> 1. the addSymbol() method for the first layer
>> 2. & 3. the QgsRendererCategory() constructor for the second and
>> third layer
>> is None (nullptr -> hence the segfault).
>>
>> If I add the following
>>
>> if style_layer is None:
>> style_layer =
>> QgsSymbol.defaultSymbol(Layer_Pressure_Center.geometryType())
>>
>> just before using style_layer as a safe check (for each layer of
>> course) everything works fine.
>> Maybe it's simply because I don't have these symbols pre-configured,
>> but it's worth the check on your side.
>>
>> Also, I encapsulated the code like this, which prevents another
>> segfault to occur due to local/global scope stuff I think:
>>
>> ---
>>
>> all imports
>>
>> def main():
>> the main code
>>
>> if__name__ == '__main__':
>> set prefix path
>> create qgs application
>> append plugins path to sys.path and import processing stuff
>> main()
>> qgs.exitQgis()
>>
>> ---
>>
>>
>> Regards,
>> Jacky
>>
>>
>>
>> Le 28/10/2022 à 17:10, Mélanie Dol via QGIS-Developer a écrit :
>>> Hi Jacky,
>>>
>>> Yes of course. Please find attached my script.
>>>
>>> Regards,
>>>
>>> Mélanie
>>>
>>> On 10/28/22 4:55 PM, Jacky Volpes via QGIS-Developer wrote:
>>>> Hi Mélanie,
>>>>
>>>> Have you initialized your standalone script as shown in
>>>> https://docs.qgis.org/3.22/en/docs/pyqgis_developer_cookbook/intro.html#using-pyqgis-in-standalone-scripts
>>>> ?
>>>>
>>>> Best regards,
>>>> Jacky
>>>>
>>>>
>>>> Le 28/10/2022 à 16:40, Mélanie Dol via QGIS-Developer a écrit :
>>>>> Hi Andrea,
>>>>>
>>>>> Thank you. I've updated with QGIS 3.26 Buenos Aires. The warning
>>>>> message have disappeared. Unfortunately, the script still
>>>>> generates a segmentation fault.
>>>>>
>>>>> Best regards,
>>>>>
>>>>> Mélanie Dol
>>>>>
>>>>> On 10/28/22 11:47 AM, Andrea Giudiceandrea via QGIS-Developer wrote:
>>>>>> Il 27/10/2022 16:34, Mélanie Dol via QGIS-Developer ha scritto:
>>>>>>> /usr/share/qgis/python/plugins/processing/algs/grass7/Grass7Utils.py:191:
>>>>>>> SyntaxWarning: "is" with a literal. Did you mean "=="?
>>>>>>> if path is '':
>>>>>>
>>>>>> Hi Mélanie,
>>>>>> while I don't know why that script generates a segmentation
>>>>>> fault, It seems you are using QGIS 3.10 which is a three years
>>>>>> old version. The QGIS repository for Ubuntu 20.04 currently
>>>>>> offers the latest available QGIS LTR 3.22.12.
>>>>>>
>>>>>> Best regards.
>>>>>>
>>>>>> Andrea Giudiceandrea
>>>>>>
>>>>>> _______________________________________________
>>>>>> QGIS-Developer mailing list
>>>>>> QGIS-Developer at 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 at lists.osgeo.org
>>>>> List info:https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>>>> Unsubscribe:https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>>>
>>>> --
>>>> Jacky Volpes
>>>>
>>>> Ingénieur SIG - Oslandia
>>>>
>>>> _______________________________________________
>>>> QGIS-Developer mailing list
>>>> QGIS-Developer at 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 at lists.osgeo.org
>>> List info:https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>> Unsubscribe:https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>> --
>> Jacky Volpes
>>
>> Ingénieur SIG - Oslandia
>>
>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at 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 at lists.osgeo.org
> List info:https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe:https://lists.osgeo.org/mailman/listinfo/qgis-developer
--
Jacky Volpes
Ingénieur SIG - Oslandia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20221102/ca099a3c/attachment.htm>
More information about the QGIS-Developer
mailing list