Hi Matthias, thanks for the heads up on subprocess.Popen.
While for spawning a simple webserver, no communication is needed at this point, QProcess may then also work better if I can find out how to change the root folder of a running instance of SimpleHTTPServer. Could you use QProcess.start() rather than QProcess.startDetached() from a plugin or processing script ? I am looking for a way to avoid having the console window open up. Best, -Andreas > Date: Mon, 22 May 2017 08:22:44 +0200 > From: Matthias Kuhn <[email protected]> > To: [email protected] > Subject: Re: [QGIS-Developer] [processing] launching separate > process/thread > > Hi Andreas, > > I recently had troubles with getting stdout / stderr from > subprocess.Popen on some Windows systems. Not sure about the reasons but > switching over to QProcess solved it. > > On 5/21/17 11:55 PM, Andreas Plesch wrote: > > Looking around some more, there is also os.spawn and its recommended > > update subprocess.Popen. > > > > So > > > > os.chdir(root_folder) > > pid = subprocess.Popen(['python', '-m', 'SimpleHTTPServer', > > str(port)]).pid > > > > and later > > os.kill(pid, 7) > > > > works robustly in my tests. This seems similar to > > QProcess.startDetached which may provide better platform coverage (?). > > > > -Andreas > > > > > > > > > > On Sun, May 21, 2017 at 9:30 AM, Andreas Plesch > > <[email protected] <mailto:[email protected]>> wrote: > > > > Hi Giovanni, > > > > thanks for the pointer. When I use multiprocessing.Process instead > > of threading.Thread I get: > > > > PicklingError: Can't pickle <function webserver at 0x1622F330>: > > it's not found as __main__.webserver > > > > This is probably related to: > > > > https://docs.python.org/2/library/multiprocessing.html#windows > > <https://docs.python.org/2/library/multiprocessing.html#windows> > > > > So I am not sure how one would use multiprocessing from a > > processing script rather than from the __main__ python program. > > > > -Andreas > > > > > > On Sun, May 21, 2017 at 8:45 AM, G. Allegri <[email protected] > > <mailto:[email protected]>> wrote: > > > > Side note: multiprocessing is part of the Python standard > > library. > > https://docs.python.org/2.7/library/multiprocessing.html > > <https://docs.python.org/2.7/library/multiprocessing.html> > > > > Giovanni > > > > Il 21 mag 2017 14:18, "Andreas Plesch" > > <[email protected] <mailto:[email protected]>> ha > > scritto: > > > > As a followup, here is the simple processing script which > > is my attempt at launching a separate task: > > > > https://github.com/andreasplesch/QGIS-X3D- > Processing/blob/master/scripts/launch_webserver.py > > <https://github.com/andreasplesch/QGIS-X3D- > Processing/blob/master/scripts/launch_webserver.py> > > > > qgis2web does not seem to need a real http server for the > > preview as openlayers apparently can use the file protocol. > > > > -Andreas > > > > On Sat, May 20, 2017 at 5:29 PM, Andreas Plesch > > <[email protected] <mailto:[email protected]>> > > wrote: > > > > I would like to launch a minimal web server from a > > processing script to serve html properly (rather than > > using the file protocol). > > > > Since the web server needs to run and keep running > > separately from qgis or the qgis python interpreter, I > > investigated various ways to accomplish this using > > SimpleHTTPServer. On windows 2.18.7 as linux should be > > more robust. > > > > - threading.Threat : start() works until the server > > actually serves a file. Then qgis crashes with a > > minidump . For some reason, the crashing happens not > > always but more often than not. > > - multiprocessing : seems to be the recommended > > solution but I do not seem to have it with Qgis python > (?) > > - QProcess.start() : works from the python terminal, > > seems robust but does not seem to work from a > > processing script (?). Would be the preferred solution. > > - QProcess.startDetached('python',(args),dir) : works > > reliably but requires killing and restarting the > > process to change the root directory served > > > > This may all change with Qgis 3 but I suspect 2.18 > > will be around for a while, too. > > > > Any recommendations or ideas would be welcome. > > > > I will look into qgis2web to see what it does. > > > > -- > > Andreas Plesch > > 39 Barbara Rd. > > Waltham, MA 02453 > > > > > > > > > > -- > > Andreas Plesch > > 39 Barbara Rd. > > Waltham, MA 02453 > > > > _______________________________________________ > > QGIS-Developer mailing list > > [email protected] > > <mailto:[email protected]> > > List info: > > https://lists.osgeo.org/mailman/listinfo/qgis-developer > > <https://lists.osgeo.org/mailman/listinfo/qgis-developer> > > Unsubscribe: > > https://lists.osgeo.org/mailman/listinfo/qgis-developer > > <https://lists.osgeo.org/mailman/listinfo/qgis-developer> > > > > > > > > > > -- > > Andreas Plesch > > 39 Barbara Rd. > > Waltham, MA 02453 > > > > > > > > > > -- > > Andreas Plesch > > 39 Barbara Rd. > > Waltham, MA 02453 > > > > > > _______________________________________________ > > 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 > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: <http://lists.osgeo.org/pipermail/qgis-developer/ > attachments/20170522/63250ee4/attachment.html> > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > 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 > > ------------------------------ > > End of QGIS-Developer Digest, Vol 139, Issue 59 > *********************************************** > -- Andreas Plesch 39 Barbara Rd. Waltham, MA 02453
_______________________________________________ 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
