Need to 'import gtk' on Ubuntu 20.04, what do I need?
Akkana Peck <akkana at shallowsky.com> wrote:
> Chris Green writes:
> > I have recently upgraded my desktop system from ubuntu 19.10 to ubuntu
> > 20.04. [ ... ]
> > The error I am getting is:-
> [ ... ]
> > ImportError: No module named gtk
> > So what do I need to install on my Ubuntu 20.04 system to provide the
> > gtk module?
> Ubuntu doesn't provide python-gtk any more at all. Which makes a
> number of programs rather difficult now ...
Not quite true. Originally this program failed with "ImportError: No
module named pygtk" so I fished around a bit (i.e. did some searches)
and installed python-gobject, python-gobject-2 and python-gi. Doing
this got me past the "No module named pygtk", but I get the "No module
named gtk" still. So Python GTK is sort of half available.
> > Alternatively (but much harder work) what is the Python 3 equivalent
> > of the the Python 2 pygtk and gtk modules.
> ... because there is no close equivalent. In Python 3, GTK is
> accessed via something called GObject Introspection (module "gi")
> which requires significant changes to code beyond the usual 2to3
> Python migration.
So is that what I'm getting by installing the things noted above.
I.e. 'import pygtk' is importing GObject things whereas 'import gtk'
is after the older stuff.
I'm a *fairly* competant Python programmer so, if I have to, I will
consider converting from using the gtk module to using the gi module,
are there any good tutorials which might help me down this road?
> You might be able to get the program working using pygtkcompat.
> Try inserting these lines near the beginning of the program:
> from gi import pygtkcompat
Ah, that sounds like it might be a reasonable path to try, I'll look
for documentation on pygtkcompat, it sounds as if that might be useful.
> If that doesn't work, you might be able to get the old Python 2/GTK 2
> packages working by installing these two files with dpkg -i.
> No warranty of safety or efficacy implied.
Yes, I found one thread on stackoverflow which went down this sort of
route but it's not going to be a long term solution I suspect. I
think modernising and maintaining my own version of the code is going
to work better long term.
> Good luck! It was a nasty shock discovering that Ubuntu had removed
> python-gtk, especially since they kept lots of other python2 packages
> (I could have understood it if they'd removed python2 entirely).
> I don't know what the reasoning was for removing python-gtk while
> keeping python2.
Yes, from my searches it seems to have bitten quite a few people.
Thanks for all the help.