Проблемы с импортом Python-Xlib - PullRequest
15 голосов
/ 05 мая 2011

Я установил новый модуль, и кажется, что одна из его зависимостей еще не установлена. Модуль называется Xlib.display. Вот сообщение об ошибке, которое я получил:

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

Где я могу найти этот модуль, которого мне явно не хватает? Google не дал никаких лидов.

"Редактировать: у меня уже загружен этот модуль sourceforge, но я все еще получаю те же результаты.

Ответы [ 8 ]

19 голосов
/ 19 сентября 2013

Пожалуйста, попробуйте.

Это установит Xlib sudo apt-get install python-xlib

Тогда вы можете проверить

>>from Xlib.display import Display

Чтобы установить PyMouse, если хотитедля управления и захвата событий мыши используйте:

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

13 голосов
/ 08 января 2016

Ниже сработало у меня!

pip install python3_xlib

Я также использовал pyuserinput для автоматизации, которая требует этого.

5 голосов
/ 22 октября 2015

У меня была такая же проблема, но приведенные выше решения не сработали для меня. Поскольку я установил python через пакет anaconda, когда я использовал:

sudo apt-get install  python-xlib

Xlib все еще не был обнаружен python2. Решение в моем случае было использовать:

anaconda search -t conda python-xlib

Тогда найдите пакет от api anaconda, мой был erik / python-xlib. Установите его, используя:

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

Тогда это сработало.

2 голосов
/ 30 января 2013

В системах Debian установить python-xlib .

В других системах высока вероятность того, что пакет будет иметь то же имя.

1 голос
/ 11 мая 2013

Я не думаю, что библиотека Xlib работает в Python 3.

Источник :

Требования

Библиотека Python X требует Python 1.5.2 или новее.Он был протестирован в различных версиях с Python 1.5.2 и 2.0 до 2.6.

0 голосов
/ 13 марта 2019

Сценарий:

Я пытался использовать функции скриншота пакета 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')

Среда:

  • Ubuntu16.04 (LTS)
  • conda 4.5.11
  • Python 3.7 (Miniconda)
  • needs.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
    

Решение:

Я установил python-xlib пакет в среде conda, используя:

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
0 голосов
/ 02 ноября 2017

Я, честно говоря, не могу объяснить, почему это работает ... но вот команда, которая заставила его работать на меня.

sudo apt-get install python3-xlib

Не должно работать, потому что xlib, по-видимому, не работает с python 3.x, но все установлено нормально, поэтому я не жалуюсь!

0 голосов
/ 25 февраля 2013

Я искал тот же ответ, однако после еще нескольких копаний кажется, что XCB (Привязка языка C протокола X) в целом устареет Xlib.С веб-сайта XCB:

Привязка к языку C протокола X (XCB) - это замена Xlib с небольшим пространством, скрытием задержки, прямым доступом к протоколу, улучшенной поддержкой потоков и расширяемостью.

К счастью, есть привязки python, доступные как python-xpyb в apt или xpyb на PyPi .Я не продвинулся так далеко в своем проекте, поэтому я не проверял, работает ли это с Python3, но это, вероятно, правильный путь и подходящее место для регистрации любых ошибок поддержки Python3, если это необходимо.

...