[QGIS-Developer] segmentation fault in standalone script using PyQGIS

Mélanie Dol Melanie.Dol at sat-ocean.com
Thu Nov 3 10:03:26 PDT 2022


Hi Jacky,

Thank you, it's working.

Best regards,

Mélanie

On 11/2/22 4:50 PM, Jacky Volpes via QGIS-Developer wrote:
> 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
>
> _______________________________________________
> 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20221103/bdb9309d/attachment-0001.htm>


More information about the QGIS-Developer mailing list