moses-palmer / pynput

Sends virtual input commands
GNU Lesser General Public License v3.0
1.79k stars 248 forks source link

Compiling with pyinstaller #442

Closed edraft closed 2 years ago

edraft commented 2 years ago

Description Pynput says X Server is not running after compiling, but every environment variable is set and X Server is definitely working.

Platform and pynput version Ubuntu 2021.04.3 Python 3.9.2 pynput 1.7.6 pyinstaller 4.8

To Reproduce I'm running this command to compile:

pyinstaller --specpath ../dist/cspec --workpath ../dist/cbuild --distpath ../dist/cdist --add-data ../../src/py_to_uxf/appsettings.json:. -n py_to_uxf --log-level=DEBUG --hidden-import pynput.keyboard._xorg --hidden-import pynput.mouse._xorg -y py_to_uxf/main.py

in https://git.sh-edraft.de/edraft/py_to_uxf/src/commit/00484711ab3aa87ad0d6b32e10016e554dd5963c/src

After compiling I start with sudo dist/cdist/py_to_uxf/py_to_uxf

Error:

Traceback (most recent call last):
  File "py_to_uxf/main.py", line 1, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 495, in exec_module
  File "cpl_core/application/__init__.py", line 23, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 495, in exec_module
  File "cpl_core/application/application_abc.py", line 4, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 495, in exec_module
  File "cpl_core/configuration/__init__.py", line 23, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 495, in exec_module
  File "cpl_core/configuration/configuration.py", line 11, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 495, in exec_module
  File "cpl_core/console/__init__.py", line 24, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 495, in exec_module
  File "cpl_core/console/console.py", line 9, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 495, in exec_module
  File "pynput/__init__.py", line 40, in <module>
  File "PyInstaller/loader/pyimod03_importers.py", line 495, in exec_module
  File "pynput/keyboard/__init__.py", line 31, in <module>
  File "pynput/_util/__init__.py", line 76, in backend
ImportError: this platform is not supported: ('failed to acquire X connection: Can\'t connect to display ":1": b\'No protocol specified\\n\'', DisplayConnectionError(':1', b'No protocol specified\n'))

Try one of the following resolutions:

 * Please make sure that you have an X server running, and that the DISPLAY environment variable is set correctly
[1780092] Failed to execute script 'main' due to unhandled exception!
edraft commented 2 years ago

I had to run without sudo...