[PyQt] pyqtdeployed app crashes android but not iOS
Phil Thompson
phil at riverbankcomputing.com
Fri Feb 27 17:36:01 GMT 2015
On 06/02/2015 3:19 pm, lloyd konneker wrote:
> (This post is out of order: I sent it to the wrong list. See my
> earlier post for a workaround for the problem which this post
> describes.)
>
> I have determined that it fails here in pythonrun.c in function
> initstdio():
>
> fd = fileno(stdin);
> /* Under some conditions stdin, stdout and stderr may not be
> connected
> * and fileno() may point to an invalid file descriptor. For
> example
> * GUI apps don't have valid standard streams by default.
> */
> if (!is_valid_fd(fd)) {
> std = Py_None;
> Py_INCREF(std);
> }
> else {
> std = create_stdio(iomod, fd, 0, "<stdin>", encoding, errors);
> if (std == NULL) { << this is true and it proceeds to return
> an error and abort
>
> I haven’t determined yet why create_stdio fails, or why fileno(stdin)
> returns a valid fd if there is no stdin for the process on Android?
>
> I don’t understand the rationale here: why every process should have a
> stdin and why the Python interpreter needs to initialize it
> (especially on Android with PyQt.)
>
> One comment in the discussion of Python issue 17797 says a workaround
> is to redirect stdio to a file before calling Py_InitializeEx (and
> thus initstdio() )
>
> Note that issue 17797 has recent comments in the last few days. The
> thread says any ‘fix’ for Python (at least in regards Windows VS11 as
> a culprit) must wait till Python3.5. The pertinent code in Python
> seems to have been changed recently.
Sorry for not responding sooner...
Is there any update on this?
Is it only a problem when running on real devices, or does it happen
running on the emulator as well?
Phil
More information about the PyQt
mailing list