[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: [PyQt] PyQt can halt the interpreter on an X11 build of Qt
From: Julien Schueller <julien.schueller () gmail ! com>
Date: 2013-04-19 8:14:26
Message-ID: CANV9NRN69SXkvhdygz2LrNCE7sONTGosdG7ZjNp4xhmNiVOp8A () mail ! gmail ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Hi,
With a X11 build of Qt, if there's no X server available, or the DISPLAY
env var is invalid, (ssh batch mode, ...)
then Qt exits (like in exit(1); ), with the message
: cannot connect to X server
That's a non-feature of Qt to not raise exceptions, in order to be
lighweight or more compatible,
but in the python side we'd expect a traceback, and that could be
considered as a bug.
You can reproduce it simply:
DISPLAY="" python -c "from PyQt4 import QtGui; app =
QtGui.QApplication([]); print 'Not executed' "
A workaround is to trying to check if on an X11 build, and trying to assess
the validity of DISPLAY env var with:
if hasattr(QtGui, 'QX11Info'):
display = os.environ.get('DISPLAY')
if display is None or not re.search(':\d', display):
raise RuntimeError('Invalid DISPLAY variable')
But I think it'd be great if it could be raised within pyqt.
--
J
[Attachment #5 (text/html)]
<div dir="ltr"><div><div><div>Hi,<br><br></div>With a X11 build of Qt, if there's no X \
server available, or the DISPLAY env var is invalid, (ssh batch mode, ...)<br></div>then Qt \
exits (like in exit(1); ), with the message<br> : cannot connect to X server \
<br><br></div>That's a non-feature of Qt to not raise exceptions, in order to be lighweight \
or more compatible,<br>but in the python side we'd expect a traceback, and that could be \
considered as a bug.<br> <div><div><div><div><br>You can reproduce it \
simply:<br>DISPLAY="" python -c "from PyQt4 import QtGui; app = \
QtGui.QApplication([]); print 'Not executed' \
"<br></div><div></div><div><br></div><div> A workaround is to trying to check if on an X11 \
build, and trying to assess the validity of DISPLAY env var with:<br>if hasattr(QtGui, \
'QX11Info'):<br> display = os.environ.get('DISPLAY')<br> if display \
is None or not re.search(':\d', display): <br> raise RuntimeError('Invalid DISPLAY \
variable') <br></div><div>But I think it'd be great if it could be raised \
within pyqt.<br></div><div><br clear="all"></div><div><div><br>-- <br>J</div></div></div> \
</div></div></div>
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic