导入python-Xlib时出现的问题

19

我安装了一个新模块,似乎其中一个依赖项尚未安装。这个模块叫做Xlib.display。 以下是我收到的错误信息:

from Xlib.display import Display
ImportError: No module named Xlib.display

我在哪里可以找到这个我显然缺少的模块?谷歌没有给出任何线索。

"编辑:我已经下载了那个SourceForge模块,但我仍然得到相同的结果。


1
嗯... 在说它没帮助之前,可以尝试使用谷歌搜索... http://www.google.com/search?q=python+xlib - Ignacio Vazquez-Abrams
2
所以你已经下载了它。你安装了吗? - Ignacio Vazquez-Abrams
它在Python 2中可以正常加载,但在Python 3中无法加载。 - Christian Chapman
8个回答

21
请尝试。
这将安装Xlib sudo apt-get install python-xlib 然后您可以检查 >>from Xlib.display import Display 如果您想控制和捕获鼠标事件,请安装PyMouse: sudo easy_install https://github.com/pepijndevos/PyMouse/zipball/master

15

以下方法对我有效!

pip install python3_xlib

我也使用了pyuserinput进行自动化,它需要这个。


1
我在 virtualenv 中执行了 pip install python-xlib。太好了! - kchomski

5

我有同样的问题,但上面的解决方案对我没有用。因为我是通过anaconda包安装python的,所以当我使用以下命令时:

sudo apt-get install  python-xlib

Xlib 对于 Python2 仍然无法检测到。我的解决方案是使用:

anaconda search -t conda python-xlib

然后从anaconda api中找到相应的包,我使用的是 erik/python-xlib。使用以下命令进行安装:

conda install --channel https://conda.anaconda.org/erik python-xlib

然后它工作了。


2
在Debian系统上安装python-xlib
在其他系统上,该软件包很可能具有相同的名称。

2
我认为Xlib库在Python 3中不起作用。 源代码

需求

Python X库需要Python 1.5.2或更高版本。它已经在Python 1.5.2和2.0到2.6的各种程度上进行了测试。


1

我真的无法解释为什么它有效...但是这是让我成功的命令。

sudo apt-get install python3-xlib

应该不起作用,因为xlib显然与Python 3.x不兼容,但是一切都安装好了,所以我不会抱怨!


2021年10月12日在我的Xubuntu 21.04上运行成功,而没有带有“3”的相同命令则失败了。 - dez93_2000

0

我曾经寻找过同样的答案,但进一步了解后发现XCB (X protocol C-language Binding)将会普遍取代Xlib。来自XCB网站的信息如下:

基于C语言的X协议绑定(XCB)是Xlib的替代品,具有小巧的特点,隐藏延迟、直接访问协议、改进的线程支持和可扩展性。

幸运的是,有python绑定可以使用,如在apt中使用的 python-xpyb xpyb on PyPi。我还没有在我的项目中测试这是否适用于Python3,但这可能是正确的方法,如果需要的话也是报告任何Python3支持问题的正确位置。


python-xlib不是C语言Xlib库的包装器,它是X协议的纯Python实现。因此,旨在替换C语言Xlib的XCB对python-xlib库没有影响。 - Aleksi Torhamo

0

场景:

我试图使用pyautogui包的截屏功能。但是我遇到了以下错误:

Traceback (most recent call last):
  File "test_screenshot.py", line 1, in <module>
    import pyautogui
  File ".../miniconda3/envs/myenv/lib/python3.7/site-packages/pyautogui/__init__.py", line 152, in <module>
    from . import _pyautogui_x11 as platformModule
  File ".../miniconda3/envs/myenv/lib/python3.7/site-packages/pyautogui/_pyautogui_x11.py", line 7, in <module>
    from Xlib.display import Display
ModuleNotFoundError: No module named 'Xlib'

Python 代码 (test_screenshot.py):

import pyautogui
img = pyautogui.screenshot('test.png')

环境:

  • Ubuntu 16.04 (LTS)
  • conda 4.5.11
  • Python 3.7 (Miniconda)
  • requirements.txt:

    certifi==2019.3.9
    Pillow==5.4.1
    PyAutoGUI==0.9.42
    PyGetWindow==0.0.4
    PyMsgBox==1.0.6
    PyRect==0.1.4
    PyScreeze==0.1.20
    PyTweening==1.0.3
    

解决方案:

我使用以下命令在conda环境中安装了python-xlib包:

pip install python-xlib

现在test_screenshot.py已经可以正常运行了。

更新了requirements.txt

certifi==2019.3.9
Pillow==5.4.1
PyAutoGUI==0.9.42
PyGetWindow==0.0.4
PyMsgBox==1.0.6
PyRect==0.1.4
PyScreeze==0.1.20
python-xlib==0.25
PyTweening==1.0.3
six==1.12.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接