【问题标题】:Problems importing python-Xlib导入 python-Xlib 的问题
【发布时间】:2011-08-19 00:52:03
【问题描述】:

我安装了一个新模块,它看起来好像它的依赖项之一尚未安装。该模块称为 Xlib.display。 这是我收到的错误消息:

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

我在哪里可以找到我显然缺少的这个模块? Google 没有发现任何线索。

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

【问题讨论】:

  • 呃... 尝试 Google,然后说它没有帮助... google.com/search?q=python+xlib
  • 所以你下载了它。你安装了吗?
  • 它在 Python 2 中加载对我来说很好,而不是 Python 3

标签: python module dependencies


【解决方案1】:

请尝试。

这将安装 Xlib sudo apt-get install python-xlib

那你就可以查了

>>from Xlib.display import Display

如果您想控制和捕获鼠标事件,请安装 PyMouse:

sudo easy_install https://github.com/pepijndevos/PyMouse/zipball/master

【讨论】:

    【解决方案2】:

    下面对我有用!

    pip install python3_xlib
    

    我还使用 pyuserinput 进行自动化,这需要它。

    【讨论】:

    • 我在 virtualenv 中做了pip install python-xlib。太好了!
    【解决方案3】:

    我遇到了同样的问题,但上面的解决方案对我不起作用。由于我是通过anaconda包安装python的,所以在使用的时候:

    sudo apt-get install  python-xlib
    

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

    anaconda search -t conda python-xlib
    

    然后从 anaconda api 中找到包,我的是 erik/python-xlib。使用安装它:

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

    然后它起作用了。

    【讨论】:

      【解决方案4】:

      在 Debian 系统上安装 python-xlib

      在其他系统上,包带有相同名称的可能性很高。

      【讨论】:

        【解决方案5】:

        我认为 Xlib 库不适用于 Python 3。

        Source:

        要求

        Python X 库需要 Python 1.5.2 或更高版本。它已通过 Python 1.5.2 和 2.0 到 2.6 进行了不同程度的测试。

        【讨论】:

          【解决方案6】:

          老实说,我无法解释为什么会这样......但这是让它为我工作的命令。

          sudo apt-get install python3-xlib
          

          不应该工作,因为 xlib 显然不能与 python 3.x 一起工作,但一切都安装好了,所以我没有抱怨!

          【讨论】:

          • 2021-10-12 在 xubuntu 21.04 上为我工作,但没有“3”的相同命令失败。
          【解决方案7】:

          我一直在寻找相同的答案,但是经过更多挖掘后,XCB (X protocol C-language Binding) 似乎总体上会过时 Xlib。来自 XCB 网站:

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

          幸运的是,python 绑定可用作 python-xpyb in aptxpyb on PyPi。我的项目还没有走那么远,所以我没有测试这是否适用于 Python3,但这可能是可行的方法,也是在必要时提交任何 Python3 支持错误的适当位置。

          【讨论】:

          • python-xlib 不是 C 语言 Xlib 库的包装器,它是 X 协议的纯 python 实现。因此,打算替换 C 语言 Xlib 的 XCB 对 python-xlib 库没有影响。
          【解决方案8】:

          场景:

          我试图使用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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-01-02
            • 2021-02-22
            • 2012-11-02
            相关资源
            最近更新 更多