ValueError:命名空间 Gtk 不可用
Posted
技术标签:
【中文标题】ValueError:命名空间 Gtk 不可用【英文标题】:ValueError: Namespace Gtk not available 【发布时间】:2019-11-11 09:54:39 【问题描述】:按照2. Getting Started — Python GTK+ 3 Tutorial 3.4 documentation的说明进行操作时
尝试
In [6]: import gi
...: gi.require_version('Gtk', '3.0')
...: from gi.repository import Gtk
它报告错误:
~/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
关注 How do I Install GTK+ 3.0? - Ask Ubuntu 并安装 Gtk 到 ubuntu
sudo apt-get install libgtk-3-dev
但是,它仍然报告相同的错误。
如何解决我的问题?
注意:
试过解决办法
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
安装其他
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
没用,
我的机器:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.04
Release: 19.04
Codename: disco
我在安装dropbox到ubuntu时遇到了问题
$ dropbox start
Starting Dropbox...
The Dropbox daemon is not installed!
Run "dropbox start -i" to install the daemon
运行“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
【问题讨论】:
您能分享一下您从哪里获得 Dropbox 客户端吗? 另外,你安装了 GTK 库吗?您使用的是标准桌面还是 KDE? 我在 ubuntuInstall - Dropbox 上获得了标准保管箱并使用标准桌面。 @Oz123 在下面查看我的更新。我相信您需要安装缺少的软件包。 【参考方案1】:您需要安装gobject-introspection、python3-gi 和gir1.2-gtk-3.0,这些软件包包括将 GTK+ 库暴露给 python3 的文件。
sudo apt install python3-gi gobject-introspection gir1.2-gtk-3.0
对于 CENTOS (7)/OpenSUSE (15.1),您必须分别在 dnf/yum/zypper 中将包 gir1.2-gtk-3.0
替换为 gtk3-devel
- 感谢 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')
>>>
旁注
debian\ubuntu 中的包调用 xyz-dev
包含 C 头文件、pkg-config 文件和 autotools 宏。仅当您打算使用 C 和 C++ 等编译语言构建软件时才需要这些。
这些都安装到:
/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
使用dpkg -L libgtk-3-dev
查看此软件包在您的系统上安装的所有文件。
更新
请使用dpkg -r dropbox
删除保管箱而不是使用以下命令重新安装
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
现在,如果缺少依赖项,请使用以下方法修复它们:
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) ...
【讨论】:
非常感谢,运行起来有点问题,是我的ubuntu机器的问题吗? (更新了问题 ty,我想这可能是我的 anaconda python 环境。 哦,伙计……是的。当然,它不知道 gi.repository ......虚拟环境也是如此。 venv virtualenv.pypa.io/en/stable/reference/… 有一个标志,你应该在 conda 中有类似的东西。以上是关于ValueError:命名空间 Gtk 不可用的主要内容,如果未能解决你的问题,请参考以下文章