<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hi Andreas,</p>
<p>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.</p>
<p>Matthias<br>
</p>
<br>
<div class="moz-cite-prefix">On 5/21/17 11:55 PM, Andreas Plesch
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAKdk67t7UNnGyed-zMRNV+3C-0+6-+P2-9eHDbn96VcF+9XMvQ@mail.gmail.com">
<div dir="ltr">
<div>
<div>
<div>Looking around some more, there is also os.spawn and
its recommended update subprocess.Popen.<br>
<br>
</div>
<div>So<br>
<br>
os.chdir(root_folder)<br>
pid = subprocess.Popen(['python', '-m',
'SimpleHTTPServer', str(port)]).pid<br>
</div>
<br>
</div>
and later <br>
</div>
os.kill(pid, 7)<br>
<div>
<div><br>
</div>
<div>works robustly in my tests. This seems similar to
QProcess.startDetached which may provide better platform
coverage (?).<br>
</div>
<div><br>
</div>
<div>-Andreas<br>
</div>
<div><br>
<br>
</div>
<div><br>
</div>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Sun, May 21, 2017 at 9:30 AM,
Andreas Plesch <span dir="ltr"><<a
href="mailto:andreasplesch@gmail.com" target="_blank"
moz-do-not-send="true">andreasplesch@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi Giovanni,
<div><br>
</div>
<div>thanks for the pointer. When I use
multiprocessing.Process instead of threading.Thread I
get:</div>
<div><br>
</div>
<div>PicklingError: Can't pickle <function webserver at
0x1622F330>: it's not found as __main__.webserver<br>
</div>
<div><br>
</div>
<div>This is probably related to:</div>
<div><br>
</div>
<div><a
href="https://docs.python.org/2/library/multiprocessing.html#windows"
target="_blank" moz-do-not-send="true">https://docs.python.org/2/<wbr>library/multiprocessing.html#<wbr>windows</a><br>
</div>
<div><br>
</div>
<div>So I am not sure how one would use multiprocessing
from a processing script rather than from the __main__
python program. </div>
<div><br>
</div>
<div>-Andreas</div>
<div><br>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Sun, May 21, 2017 at 8:45 AM,
G. Allegri <span dir="ltr"><<a
href="mailto:giohappy@gmail.com" target="_blank"
moz-do-not-send="true">giohappy@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="auto">Side note: multiprocessing is part of
the Python standard library.
<div dir="auto"><a
href="https://docs.python.org/2.7/library/multiprocessing.html"
target="_blank" moz-do-not-send="true">https://docs.python.org/2.7/li<wbr>brary/multiprocessing.html</a><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">Giovanni</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">Il 21 mag 2017 14:18,
"Andreas Plesch" <<a
href="mailto:andreasplesch@gmail.com"
target="_blank" moz-do-not-send="true">andreasplesch@gmail.com</a>>
ha scritto:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0
0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div dir="ltr">As a followup, here is the simple
processing script which is my attempt at
launching a separate task:
<div><br>
</div>
<div><a
href="https://github.com/andreasplesch/QGIS-X3D-Processing/blob/master/scripts/launch_webserver.py"
target="_blank" moz-do-not-send="true">https://github.com/andreasples<wbr>ch/QGIS-X3D-Processing/blob/ma<wbr>ster/scripts/launch_webserver.<wbr>py</a><br>
</div>
<div><br>
</div>
<div>qgis2web does not seem to need a real
http server for the preview as openlayers
apparently can use the file protocol.</div>
<div><br>
</div>
<div>-Andreas<br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Sat, May 20,
2017 at 5:29 PM, Andreas Plesch <span
dir="ltr"><<a
href="mailto:andreasplesch@gmail.com"
target="_blank"
moz-do-not-send="true">andreasplesch@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">I would like to launch
a minimal web server from a
processing script to serve html
properly (rather than using the file
protocol).
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>- 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.</div>
<div>- multiprocessing : seems to be
the recommended solution but I do
not seem to have it with Qgis
python (?)</div>
<div>- QProcess.start() : works from
the python terminal, seems robust
but does not seem to work from a
processing script (?). Would be
the preferred solution.</div>
<div>-
QProcess.startDetached('python<wbr>',(args),dir)
: works reliably but requires
killing and restarting the process
to change the root directory
served</div>
<div><br>
</div>
<div>
<div>This may all change with Qgis
3 but I suspect 2.18 will be
around for a while, too.</div>
<div><br>
</div>
<div>Any recommendations or ideas
would be welcome.</div>
<div><br>
</div>
<div>I will look into qgis2web to
see what it does.</div>
<span
class="m_5715314223691126606HOEnZb"><font
color="#888888"><span
class="m_5715314223691126606m_-8717717480193625739m_7754341851245049440gmail-HOEnZb"><font
color="#888888">
<div><br>
</div>
-- <br>
<div
class="m_5715314223691126606m_-8717717480193625739m_7754341851245049440gmail-m_1640074130608958439gmail_signature">Andreas
Plesch<br>
39 Barbara Rd.<br>
Waltham, MA 02453</div>
</font></span></font></span></div>
</div>
<span
class="m_5715314223691126606HOEnZb"><font
color="#888888">
</font></span></blockquote>
</div>
<span class="m_5715314223691126606HOEnZb"><font
color="#888888"><br>
<br clear="all">
<span class="HOEnZb"><font
color="#888888">
<div><br>
</div>
-- <br>
<div
class="m_5715314223691126606m_-8717717480193625739m_7754341851245049440gmail_signature">Andreas
Plesch<br>
39 Barbara Rd.<br>
Waltham, MA 02453</div>
</font></span></font></span></div>
</div>
</div>
<span class="HOEnZb"><font color="#888888"><span
class="m_5715314223691126606HOEnZb"><font
color="#888888">
<br>
______________________________<wbr>_________________<br>
QGIS-Developer mailing list<br>
<a
href="mailto:QGIS-Developer@lists.osgeo.org"
target="_blank" moz-do-not-send="true">QGIS-Developer@lists.osgeo.org</a><br>
List info: <a
href="https://lists.osgeo.org/mailman/listinfo/qgis-developer"
rel="noreferrer" target="_blank"
moz-do-not-send="true">https://lists.osgeo.org/mailma<wbr>n/listinfo/qgis-developer</a><br>
Unsubscribe: <a
href="https://lists.osgeo.org/mailman/listinfo/qgis-developer"
rel="noreferrer" target="_blank"
moz-do-not-send="true">https://lists.osgeo.org/mailma<wbr>n/listinfo/qgis-developer</a><br>
</font></span></font></span></blockquote>
</div>
</div>
<span class="HOEnZb"><font color="#888888">
</font></span></blockquote>
</div>
<span class="HOEnZb"><font color="#888888"><br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_5715314223691126606gmail_signature"
data-smartmail="gmail_signature">Andreas Plesch<br>
39 Barbara Rd.<br>
Waltham, MA 02453</div>
</font></span></div>
</blockquote>
</div>
<br>
<br clear="all">
<br>
-- <br>
<div class="gmail_signature" data-smartmail="gmail_signature">Andreas
Plesch<br>
39 Barbara Rd.<br>
Waltham, MA 02453</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
QGIS-Developer mailing list
<a class="moz-txt-link-abbreviated" href="mailto:QGIS-Developer@lists.osgeo.org">QGIS-Developer@lists.osgeo.org</a>
List info: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-developer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a>
Unsubscribe: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-developer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></pre>
</blockquote>
<br>
</body>
</html>