On Tue, 11 Aug 2020 at 06:37, Bourdon, Jean-François (DIF) <[email protected]> wrote: > > Hi list, > > > > I have a very simple problem: I can’t delete a file after loading it with > QgsVectorLayer() or QgsRasterLayer() within a script (custom Processing > Provider) as I get the error saying the file is still in use. My code to > replicate: > > > > path_raster = "C:/temp/raster.tif" > > rlayer = QgsRasterLayer(path_raster, "flow") > > QgsProject.instance().addMapLayer(rlayer, False) > > QgsProject.instance().removeMapLayer(rlayer.id()) > > os.remove(path_raster) > > > > However, the same code directly put inside the Python Console within QGIS > works, but it won’t if used inside a Processing Provider plugin. I also tried > using del rlayer without success. There is several questions about releasing > QGIS’ lock on files on GIS StackExchange (e.g. here and here) but it doesn’t > seem to work for everyone. Maybe it was working in version 2.X, but it fails > on 3.12 (Windows 10).
I suspect your algorithm is incorrectly running in a thread. You CAN'T do this if your algorithm directly access the project instance -- it's not thread safe and the layers are likely not getting deleted at all. Try returning the FlagNoThreading flag from your algorithm's flags() override. Nyall > > > > Many thanks > > > > Jean-François Bourdon, ing.f. > > Analyste en télédétection > Direction des inventaires forestiers > Ministère des Forêts, de la Faune et des Parcs > 5700, 4e Avenue Ouest, local A-108 > Québec (Québec) G1H 6R1 > Téléphone : 418 627-8669, poste 4304 > [email protected] > mffp.gouv.qc.ca > > > > _______________________________________________ > QGIS-Developer mailing list > [email protected] > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer _______________________________________________ QGIS-Developer mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
