My script wants to get the input from the keyboard without the need of hitting the ENTER key. The input() function works for getting the input, but it requires hitting the enter key. I have also tried several libraries for being used in .py scripts, but none of them works in Jupyterlab. Can someone suggest to me a way that works for getting keyboard input instantly for Jupyter? Thank you!
AFAIK Jupyter does not have a full replacement for
stdin as used by normal programs.
input() is redefined in Jupyter so that it works in the Jupyter’s cells. There you probably cannot use other functions reading
stdin as in normal Python text terminal programs.
Also it is not clear how exactly you want the function to behave. When you use
input() then pressing Enter indicates that you finished your input. How do you want to indicate end of input in your scenario? Do you rather want to read individual keypresses?
The code in Jupyter notebook is split between multiple cells. Also the notebook has its own JupyterLab user interface so you cannot define your own interactivity of the program the same way as in the plain Python running on a text console.
IMHO most often
ipywidgets are being used to implement interactivity in Jupyter. Here is a simple example of an on-screen button: Widget Events - button example
I think “stealing” the keyboard from the JupyterLab web interface would be a more complicated task than the on-screen button.