Python Keyboard Library OverflowError только в упакованном виде - PullRequest
0 голосов
/ 14 декабря 2018

Я работаю над проектом, для которого требуется пакет Python "Клавиатура" (https://github.com/boppreh/keyboard/tree/master/keyboard).

. При вызове функций с использованием myscript.py, таких как .hook() или .start_recording(), все работает нормально. Примеры:keyboard.hook(callback), keyboard.start_recording()

Однако, когда я упаковываю myscript.py в submission.exe, используя cx_Freeze или Pyinstaller, я получаю OverflowError, вызываемый из кода библиотеки клавиатуры .listen() какниже.

error message

Что является причиной этого и как я могу это исправить? Большое спасибо!

(я предполагаю, что это может бытьиз-за проблем с 32-разрядными или 64-разрядными. Тем не менее, я не знаю, как это исправить.

1 Ответ

0 голосов
/ 17 декабря 2018

Я только догадываюсь, но я могу представить, что это тот случай, когда 32-разрядное приложение не запускается на 64-разрядной машине.

Если посмотреть на пакет keyboard, то, предположительно,хранить и обмениваться адресами процесса.На 64-битной машине, даже если вы запустите 32-битную версию приложения, вы все равно получите 64-битные адреса процессов, которые иногда могут быть слишком большими, чтобы соответствовать 32-битному адресу, как того требует ваше приложение.

Если вы хотите запустить замороженное приложение на 64-битной машине, я думаю, вам нужно заморозить его, используя 64-битную установку Python.Если это по-прежнему не работает, это, вероятно, означает, что keyboard неправильно обрабатывает 64-разрядные адреса (для него необходимо установить переменные типа ctypes, хранящие адреса на 64-разрядное целое число вместо 32-разрядных целых).Я не смог найти информацию, поддерживает ли keyboard 64-битную архитектуру или нет.

...