38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
commit 8161523536289eaed01ca42707f6785f59343cd7
|
|
Author: Fernando Perez <Fernando.Perez@berkeley.edu>
|
|
Date: Tue Oct 26 14:32:10 2010 -0700
|
|
|
|
Do not require GTK to be either present or usable to start.
|
|
|
|
Before, we only checked that we could import GTK, but in a linux
|
|
console, it's possible to import it while not being able to start it
|
|
(no X11 present).
|
|
|
|
This should resolve https://bugzilla.redhat.com/show_bug.cgi?id=646079
|
|
Thanks to Tom Spura for reporting it.
|
|
|
|
diff --git a/IPython/Shell.py b/IPython/Shell.py
|
|
index 9481099..38006d7 100644
|
|
--- a/IPython/Shell.py
|
|
+++ b/IPython/Shell.py
|
|
@@ -1152,7 +1152,8 @@ class IPShellMatplotlibQt4(IPShellQt4):
|
|
def check_gtk(mode):
|
|
try:
|
|
import gtk
|
|
- except ImportError:
|
|
+ except (ImportError, RuntimeError):
|
|
+ # GTK not present, or can't be started (no X11, happens in console)
|
|
return mode
|
|
if hasattr(gtk,'set_interactive'):
|
|
gtk.set_interactive(False)
|
|
@@ -1243,7 +1244,8 @@ def _select_shell(argv):
|
|
th_mode = 'tkthread'
|
|
|
|
# New versions of pygtk don't need the brittle threaded support.
|
|
- th_mode = check_gtk(th_mode)
|
|
+ if th_mode == 'gthread':
|
|
+ th_mode = check_gtk(th_mode)
|
|
return th_shell[th_mode]
|
|
|
|
|