Opened 3 years ago
Last modified 21 months ago
#64513 new defect
diffuse fails to run: AttributeError: 'NoneType' object has no attribute 'get_width'
Reported by: | keithdtyler (Keith Tyler) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ||
Port: | diffuse |
Description (last modified by jmroot (Joshua Root))
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display warnings.warn(str(e), _gtk.Warning) /opt/local/bin/diffuse:7359: Warning: invalid (NULL) pointer instance gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) /opt/local/bin/diffuse:7359: Warning: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) /opt/local/bin/diffuse:7368: GtkWarning: gdk_screen_get_width: assertion 'GDK_IS_SCREEN (screen)' failed self.int_state['window_x'] = max(0, (gtk.gdk.screen_width() - self.int_state['window_width']) / 2) /opt/local/bin/diffuse:7369: GtkWarning: gdk_screen_get_height: assertion 'GDK_IS_SCREEN (screen)' failed self.int_state['window_y'] = max(0, (gtk.gdk.screen_height() - self.int_state['window_height']) / 2) /opt/local/bin/diffuse:7391: GtkWarning: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR) /opt/local/bin/diffuse:7391: GtkWarning: gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR) /opt/local/bin/diffuse:7391: GtkWarning: gtk_icon_size_lookup_for_settings: assertion 'GTK_IS_SETTINGS (settings)' failed p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR) /opt/local/bin/diffuse:7391: GtkWarning: Invalid icon size 3 p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR) /opt/local/bin/diffuse:7391: GtkWarning: gtk_icon_theme_load_icon: assertion 'GTK_IS_ICON_THEME (icon_theme)' failed p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR) /opt/local/bin/diffuse:7391: GtkWarning: Error loading theme icon 'document-new' for stock: p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR) /opt/local/bin/diffuse:7391: GtkWarning: gtkstyle.c:2358: invalid icon size '3' p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR) /opt/local/bin/diffuse:7391: GtkWarning: gtk_style_render_icon: assertion 'pixbuf != NULL' failed p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR) /opt/local/bin/diffuse:7391: Warning: g_object_ref: assertion 'G_IS_OBJECT (object)' failed p0 = self.render_icon(gtk.STOCK_NEW, gtk.ICON_SIZE_LARGE_TOOLBAR) Traceback (most recent call last): File "/opt/local/bin/diffuse", line 8329, in <module> diff = Diffuse(rc_dir) File "/opt/local/bin/diffuse", line 7392, in __init__ w, h = p0.get_width(), p0.get_height() AttributeError: 'NoneType' object has no attribute 'get_width'
Change History (5)
comment:1 Changed 3 years ago by jmroot (Joshua Root)
Description: | modified (diff) |
---|---|
Summary: | Installed port fails → diffuse fails to run: AttributeError: 'NoneType' object has no attribute 'get_width' |
comment:2 Changed 3 years ago by jmroot (Joshua Root)
comment:3 Changed 3 years ago by keithdtyler (Keith Tyler)
No, I don't. This isn't indicated anywhere. I don't see any dependencies mentioned on the ports page or in the install output. I thought MacPorts installed dependencies for recipes?
Aside from the Linux version, I'm used to the version on Windows that doesn't have such a dependency, it works with native windowing.
Maybe the additional dependencies could be mentioned in the install process? I can't see installing X11 just for one application.
comment:4 Changed 3 years ago by jmroot (Joshua Root)
It isn't strictly a dependency since you might not even be running the X server on the same machine. If you want to use the native window system, you want gtk2 +quartz. Unfortunately the whole GTK 2 situation is kind of a mess, as it can't be installed for X11 and Quartz at the same time, some dependents rely on X11-specific functionality (hence the default variant being +x11), and a bunch of other dependencies also have to be built for the right back-end. #27990 and #60511 have a lot of discussion of the problem and possible solutions that could be implemented.
comment:5 Changed 21 months ago by keithdtyler (Keith Tyler)
I don't have X on here... i expected the mac install to work like the (non-cyg) windows install without X dependency.
I've installed gtk-quartz-engine, and reinstalled diffuse (both via macports), didn't help.
Do you have gtk2 installed with +x11 or +quartz? If +x11, do you have an X server installed?