Probably a Wayland issue.
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/pext/__main__.py", line 62, in <module>
from pynput import keyboard
File "/usr/lib/python3.6/site-packages/pynput/__init__.py", line 40, in <module>
from . import keyboard
File "/usr/lib/python3.6/site-packages/pynput/keyboard/__init__.py", line 49, in <module>
from ._xorg import KeyCode, Key, Controller, Listener
File "/usr/lib/python3.6/site-packages/pynput/keyboard/_xorg.py", line 39, in <module>
from pynput._util.xorg import (
File "/usr/lib/python3.6/site-packages/pynput/_util/xorg.py", line 40, in <module>
_check()
File "/usr/lib/python3.6/site-packages/pynput/_util/xorg.py", line 38, in _check
display = Xlib.display.Display()
File "/usr/lib/python3.6/site-packages/Xlib/display.py", line 89, in __init__
self.display = _BaseDisplay(display)
File "/usr/lib/python3.6/site-packages/Xlib/display.py", line 71, in __init__
protocol_display.Display.__init__(self, *args, **keys)
File "/usr/lib/python3.6/site-packages/Xlib/protocol/display.py", line 160, in __init__
raise error.DisplayConnectionError(self.display_name, r.reason)
Xlib.error.DisplayConnectionError: Can't connect to display ":0": b'No protocol specified\n'
Probably a Wayland issue.