ModuleNotFoundError: нет модуля с именем 'fcntl' с утилитой для скриншотов - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь заставить утилиту снимков экрана работать после ее переноса с:

PyQt4       ->  PyQt5
Python 2.7  ->  Python 3.7
Ubuntu      ->  Windows 7

оригинальный код

новый перенесенный код

enter image description here

Я изменил все ссылки на Qt4 на Qt5 и получил его в основном работающим, за исключением функции Select Area, которая позволяет выбирать область наэкран путем рисования прямоугольника.Эта часть завершается с ошибкой:

resArea: Traceback (most recent call last):
  File "screenshot.py", line 318, in <module>
    d = display.Display()
  File "C:\Users\frak\AppData\Local\Programs\Python\Python37\lib\site-packages\python_xlib-0.24-py3.7.egg\Xlib\display.py", line 89, in __init__
  File "C:\Users\frak\AppData\Local\Programs\Python\Python37\lib\site-packages\python_xlib-0.24-py3.7.egg\Xlib\display.py", line 71, in __init__
  File "C:\Users\frak\AppData\Local\Programs\Python\Python37\lib\site-packages\python_xlib-0.24-py3.7.egg\Xlib\protocol\display.py", line 85, in __init__
  File "C:\Users\frak\AppData\Local\Programs\Python\Python37\lib\site-packages\python_xlib-0.24-py3.7.egg\Xlib\support\connect.py", line 72, in get_display
  File "C:\Users\frak\AppData\Local\Programs\Python\Python37\lib\site-packages\python_xlib-0.24-py3.7.egg\Xlib\support\connect.py", line 55, in _relative_import
  File "C:\Users\frak\AppData\Local\Programs\Python\Python37\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
  File "C:\Users\frak\AppData\Local\Programs\Python\Python37\lib\site-packages\python_xlib-0.24-py3.7.egg\Xlib\support\unix_connect.py", line 31, in <module>
ModuleNotFoundError: No module named 'fcntl'    

Я знаю, что fcntl не поддерживается в Windows, но я думаю, что может быть обходной путь, так как я думаю, что код пытается сделать, это получить некоторый экранРазмеры, прежде чем продолжить.

Все исследования, которые я провел до сих пор, указывают мне на другие вещи, такие как pyscreenshot или альтернативные реализации, которые выполняют только полноэкранный захват, но не имеют прямоугольного селектора для выбора области экрана.

Мне нравится эта реализация, потому что она показывает вам быстрый предварительный просмотр и опции, чтобы выбрать область, настроить задержку, скрыть окно и сохранить в файл.

Любая помощь будет принята с благодарностью

...