[QGIS-Developer] [processing] launching separate process/thread
Matthias Kuhn
matthias at opengis.ch
Sun May 21 23:22:44 PDT 2017
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.
Matthias
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
> <andreasplesch at gmail.com <mailto:andreasplesch at gmail.com>> 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 <giohappy at gmail.com
> <mailto:giohappy at gmail.com>> 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"
> <andreasplesch at gmail.com <mailto:andreasplesch at gmail.com>> 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
> <andreasplesch at gmail.com <mailto:andreasplesch at gmail.com>>
> 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
> QGIS-Developer at lists.osgeo.org
> <mailto:QGIS-Developer at lists.osgeo.org>
> 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
> 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/20170522/63250ee4/attachment-0001.html>
More information about the QGIS-Developer
mailing list