4

我现在有一个项目,我正在使用 WNCK 来查找打开的窗口的位置,并将它们集中起来。我最近添加了需要 Python 3.5 的功能,但 WNCK 仅适用于 Python 2.7 或我安装的任何版本。运行 python3 stuff.py 时,我得到

ImportError:没有名为“wnck”的模块

有谁知道我如何获得 Python 3 的 wnck 库?我以前用 sudo apt-get install python-wnck 为 python2 得到了它

我正在使用 Ubuntu,所以如果答案是“无法让 WNCK 工作,请切换到 X”,请确保它不是仅限 Windows 的解决方案

4

1 回答 1

13

从 python3 开始,wnck 是GObject Introspection API的一部分。您现在可以通过以下方式访问 Debian 上的 python3 中的 wnck3(因此我认为在 Ubuntu 上也是如此):

apt-get install python3-gi gir1.2-wnck-3.0

显然 gir- 和 wnck- 版本会随着时间而变化(或者您可能需要例如较旧版本的 wnck),但是:

apt-cache search 'gir.*wnck'

应该足以找到你想要的。我个人更喜欢利用 aptitude-search 的力量

aptitude search '?depends(libgirepository) wnck'

由于 Introspection API 的灵活性,导入稍微复杂一些,例如:

>>> import gi
>>> gi.require_version('Wnck', '3.0')
>>> from gi.repository import Wnck

python3/wnck3 的文档可以在这里找到。

于 2017-04-11T14:45:38.140 回答