让WNCK使用Python 3.5吗?

Ner*_*sie 2 python module wnck

我现在有一个项目,正在使用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专用的解决方案

row*_*rpe 5

从python3开始,wnck是GObject Introspection API的一部分。您现在可以使用以下命令在Debian上的python3中访问wnck3(因此我在Ubuntu上也假定相同):

apt-get install python3-gi gir1.2-wnck-3.0
Run Code Online (Sandbox Code Playgroud)

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

apt-cache search 'gir.*wnck'
Run Code Online (Sandbox Code Playgroud)

应该足以找到您想要的东西。我个人更喜欢利用智能搜索的功能

aptitude search '?depends(libgirepository) wnck'
Run Code Online (Sandbox Code Playgroud)

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

>>> import gi
>>> gi.require_version('Wnck', '3.0')
>>> from gi.repository import Wnck
Run Code Online (Sandbox Code Playgroud)

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