[PyQt] No errors reported by deployed application, no functionality either
Barry Scott
barry at barrys-emacs.org
Fri Mar 25 19:32:45 GMT 2016
On Thursday 24 March 2016 17:00:58 Kyle Altendorf wrote:
> On 2016-02-07 15:02, Kyle Altendorf wrote:
> > On 2016-02-06 19:57, michael h wrote:
> >> Have you tried something like:
> >>
> >> myapp.exe > out.txt 2>&1
> >>
> >> from cmd?
> >
> > Very interesting. That did help it out and the expected messages
> > showed up in `out.txt`. I tried checking all encodings in pyqtdeploy
> > (except the Japanese that seemed to not be present in my Python
> > install) but that didn't help. I had previously added cp1252 (IIRC)
> > when that was complained about being missing while running from within
> > pyqtdeploy.
> >
> > So, with this ability to see the messages I was able to get a messy
> > but functional .pdy file that creates a `result` directory I can copy
> > to a clean virtual machine and run. Well, I did have to install
> > drivers for my CAN adapter, but that's expected. Thanks so much for
> > the help. I guess I have to continue digging into what is wrong with
> > stdout. Perhaps it is a Win10 issue? At least it is recreatable and
> > without pyqtdeploy or PyQt at all, I think. This exact command prints
> > in Cygwin but exits silently and with a 0 exit code (%errorlevel%) in
> > cmd.exe. Redirecting does not help in this case though, so maybe not
> > quite the same.
> >
> > "c:/python34/python" -c 'print("blue")'
>
> Aside from the apparent quoting error in this line and it's total lack
> of relationship to my problem... I did figure out and fix [1] my
> underlying issue.
>
> My issue was introduced when I was initially getting pyqtdeploy working
> because I added sys.stdout.Flush() as a diagnostic attempt when no
> messages were printed to the screen and then did not remove it after
> solving those other issues. The result at first was that when the
> application was deployed as a GUI, sys.stdout was None and hence an
> exception was thrown. Without any stdout, the exception had nowhere to
> be reported. Later I added the GUI exception dialog but
> sys.stdout.flush() was called before I created my QApplication() so
> another exception was thrown when I attempted to launch the
> QMessageBox() to report the first exception. But, it seems to all be
> unwound now.
>
> I'm not sure but this may relate in some way to Python issue #17797 [2].
>
> As always, thanks for the help. I would say that I hope this will help
> someone else but I bet there aren't too many out there pointlessly
> flushing sys.stdout in their GUI applications...
I find that it is very important to take control of sys.stdout and sys.stderr
in a GUI program. I push any output seen into my apps log file so that
users can report issues that come up (and I can see them in development).
Barry
>
> Cheers,
> -kyle
>
>
> [1]
> https://github.com/altendky/st/commit/fda167f20081ba0f24293d71535b68b2e6954b
> b0 [2]
> https://riverbankcomputing.com/pipermail/pyqt/2015-January/035442.html
> _______________________________________________
> PyQt mailing list PyQt at riverbankcomputing.com
> https://www.riverbankcomputing.com/mailman/listinfo/pyqt
More information about the PyQt
mailing list