ValueError: Namespace Gtk not available
Asked Answered
B

1

21

When following the instructions 2. Getting Started — Python GTK+ 3 Tutorial 3.4 documentation

Tries

In [6]: import gi
   ...: gi.require_version('Gtk', '3.0')
   ...: from gi.repository import Gtk

it report errors:

~/anaconda3/lib/python3.7/site-packages/gi/__init__.py in require_version(namespace, version)
    128     available_versions = repository.enumerate_versions(namespace)
    129     if not available_versions:
--> 130         raise ValueError('Namespace %s not available' % namespace)
    131
    132     if version not in available_versions:

ValueError: Namespace Gtk not available

Follow How do I Install GTK+ 3.0? - Ask Ubuntu and intstalled Gtk to ubuntu

sudo apt-get install libgtk-3-dev

However, it still report the same errors.

How could solve I the problem?

Note:

Tried the solution

me@host:~:
$ sudo apt install python3-gi gobject-introspection gir1.2-gtk-3.0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gir1.2-gtk-3.0 is already the newest version (3.24.8-1ubuntu1).
gobject-introspection is already the newest version (1.60.1-1).
python3-gi is already the newest version (3.32.0-1).
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
me@host:~:
$ python
Python 3.7.3 (default, Mar 27 2019, 22:11:17) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>> gi.require_version('Gtk', '3.0')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/me/anaconda3/lib/python3.7/site-packages/gi/__init__.py", line 130, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gtk not available

Install others

me@host:~:
$ sudo apt install -y gir1.2-gtk-3.0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gir1.2-gtk-3.0 is already the newest version (3.24.8-1ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
me@host~:
$ ipython
Python 3.7.3 (default, Mar 27 2019, 22:11:17) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:  import gi                                                                                                        

In [2]: gi.require_version('Gtk', '3.0')                                                                                  
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-2-3fc173a88e42> in <module>
----> 1 gi.require_version('Gtk', '3.0')

~/anaconda3/lib/python3.7/site-packages/gi/__init__.py in require_version(namespace, version)
    128     available_versions = repository.enumerate_versions(namespace)
    129     if not available_versions:
--> 130         raise ValueError('Namespace %s not available' % namespace)
    131 
    132     if version not in available_versions:

ValueError: Namespace Gtk not available

It did not work,

My machine:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 19.04
Release:    19.04
Codename:   disco

I encountered the problem when install dropbox to ubuntu

$ dropbox start
Starting Dropbox...
The Dropbox daemon is not installed!
Run "dropbox start -i" to install the daemon

Run "dropbox start -i"

$ dropbox start -i
Starting Dropbox...Traceback (most recent call last):
  File "/usr/bin/dropbox", line 1443, in start
    download()
  File "/usr/bin/dropbox", line 295, in download
    gi.require_version('Gdk', '3.0')
  File "/home/gaowei/anaconda3/lib/python3.7/site-packages/gi/__init__.py", line 130, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gdk not available
Baboon answered 30/6, 2019 at 9:46 Comment(5)
Can you please share where you got the Dropbox client from ?Apeak
Also, have you installed GTK libraries? Are you using the standard desktop or KDE?Apeak
I got the standard dropbox on ubuntuInstall - Dropbox and using standard desktop. @Oz123Baboon
see my update below. I believe you need to install the missing packages.Apeak
I had this error, but for gi.require_version('Gtk', '4.0'). I guess GTK 4.0 is out, and being advertised, but Ubuntu 20.04 only has GTK 3.0. See e.g. askubuntu.com/questions/1304261/how-to-get-gtk4-in-ubuntu-20-04Excelsior
A
25

You need to install gobject-introspection, python3-gi and gir1.2-gtk-3.0, these packages includes the files to expose the GTK+ libs to python3.

sudo apt install python3-gi gobject-introspection gir1.2-gtk-3.0

For CENTOS (7)/OpenSUSE (15.1), you have to substitute the package gir1.2-gtk-3.0 with gtk3-devel in dnf/yum/zypper respectively - thanks bgStack.

root@oz123:/home/oz123# python3
Python 3.6.8 (default, Jan 14 2019, 11:02:34) 
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>> gi.require_version('Gtk', '3.0')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 130, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gtk not available
>>> 
root@oz123:/home/oz123# apt install -y gir1.2-gtk-3.0
root@oz123:/home/oz123# python3
Python 3.6.8 (default, Jan 14 2019, 11:02:34) 
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>> gi.require_version('Gtk', '3.0')
>>> 

side-note

Packages calles xyz-dev in debian\ubuntu contain C headers, pkg-config files and autotools macros. These are only needed if you intend to build software using compiled languages such as C and C++. These all are installed to:

/usr/include/../xyz/header1.h  # headers
/usr/include/../xyz/header2.h
...
/usr/lib/x86_64-linux-gnu/pkgconfig/libxyz.pc  # pkgconfig files
...
/usr/share/aclocal/xyz.m4  # autotools macros

Use dpkg -L libgtk-3-dev to see all the files installed by this package on your system.

update

please remove dropbox with dpkg -r dropbox Than reinstall with the following command

root@yeni2:/# dpkg -i dropbox_2019.02.14_amd64.deb 
Selecting previously unselected package dropbox.
(Reading database ... 126384 files and directories currently installed.)
Preparing to unpack dropbox_2019.02.14_amd64.deb ...
Unpacking dropbox (2019.02.14) ...
dpkg: dependency problems prevent configuration of dropbox:
 dropbox depends on libpango1.0-0 (>= 1.36.3); however:
  Package libpango1.0-0 is not installed.

dpkg: error processing package dropbox (--install):
 dependency problems - leaving unconfigured
Processing triggers for man-db (2.8.3-2) ...
Processing triggers for gnome-menus (3.13.3-11ubuntu1) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Errors were encountered while processing:
 dropbox

Now if there missing dependencies fix them with:

root@yeni2:/# apt install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  libpango1.0-0 libpangox-1.0-0
The following NEW packages will be installed:
  libpango1.0-0 libpangox-1.0-0
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 45.0 kB of archives.
After this operation, 203 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://de.archive.ubuntu.com/ubuntu bionic/universe amd64 libpangox-1.0-0 amd64 0.0.2-5 [41.7 kB]
Get:2 http://de.archive.ubuntu.com/ubuntu bionic/universe amd64 libpango1.0-0 amd64 1.40.14-1 [3,332 B]
Fetched 45.0 kB in 0s (264 kB/s)    
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libpangox-1.0-0:amd64.
(Reading database ... 126411 files and directories currently installed.)
Preparing to unpack .../libpangox-1.0-0_0.0.2-5_amd64.deb ...
Unpacking libpangox-1.0-0:amd64 (0.0.2-5) ...
Selecting previously unselected package libpango1.0-0:amd64.
Preparing to unpack .../libpango1.0-0_1.40.14-1_amd64.deb ...
Unpacking libpango1.0-0:amd64 (1.40.14-1) ...
Setting up libpangox-1.0-0:amd64 (0.0.2-5) ...
Setting up libpango1.0-0:amd64 (1.40.14-1) ...
Setting up dropbox (2019.02.14) ...
Please restart all running instances of Nautilus, or you will experience problems. i.e. nautilus --quit
Dropbox installation successfully completed! You can start Dropbox from your applications menu.
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Apeak answered 9/7, 2019 at 0:45 Comment(4)
thank you very very much, it have a little problem to get it work, the problem of my ubuntu machine? (updated the questionBaboon
ty, I assume it might be my env of anaconda python.Baboon
Oh man... Yes. For sure, it's not aware of gi.repository... it's the same with virtual environments. There is a flag for venv virtualenv.pypa.io/en/stable/reference/…, you should have something similar in conda.Apeak
Thanks. On a Debian Bullseye (Raspberry Pi), I didn't need to install gobject-introspection, just python3-gi and gir1.2-gtk-3.0.Assailant

© 2022 - 2024 — McMap. All rights reserved.