2017/09/16(土) [n年前の日記]
#2 [python][windows] Python + curses を試す
pi3d を Raspberry Pi上で動かすと、キーボード入力を curses なるもので取得するようで。何ができるモジュールなのかよく分からなかったので、少し試してみようと。
Windows10 x64上でサンプルスクリプトを動かそうとしたら、「_curses なんてモジュールはねえよ」と怒られてしまった。どうやら Windows版Pythonの場合、別途 curses をインストールしないといかんらしい。
_Python で Curses のサンプルを書いてみた - quwaharaの日記
自分が使ってるのは Python 2.7.12 なので、 _Python Extension Packages for Windows - Christoph Gohlke から、curses-2.2-cp27-none-win32.whl をDL。pipでインストール。
_curses_sample.py
python curses_sample.py で実行したら、押したキーが表示された。一応キー入力を取得することはできるらしい。ESCキーかqキーを押せば終了。
しかし…。コレってキーの同時押しを取得できないのでは…。1文字ずつ入力されることを前提にしてるような…。
ちなみに、上記スクリプトは VMware + Ubuntu Linux 16.04 LTS上でも動いた。Linux上ではデフォルトインストール状態で動いてしまうのだな…。ズルイ…。
Windows10 x64上でサンプルスクリプトを動かそうとしたら、「_curses なんてモジュールはねえよ」と怒られてしまった。どうやら Windows版Pythonの場合、別途 curses をインストールしないといかんらしい。
_Python で Curses のサンプルを書いてみた - quwaharaの日記
自分が使ってるのは Python 2.7.12 なので、 _Python Extension Packages for Windows - Christoph Gohlke から、curses-2.2-cp27-none-win32.whl をDL。pipでインストール。
pip install curses-2.2-cp27-none-win32.whlこれで、Windows上でも curses が使えるようになった。
_curses_sample.py
u""" curses sample. キー入力を取得して表示する。 ESCキーかqキーで終了。 Windows10 x64 + Python 2.7.12 32bit + curses 2.2 """ import curses import os def main(win): u"""メイン処理.""" win.nodelay(True) key = "" win.clear() win.addstr("Detected key:") while 1: try: key = win.getkey() win.clear() win.addstr("Detected key:") win.addstr(str(key)) if key == os.linesep or key == "q" or ord(key) == 27: break except Exception as e: # No input pass curses.wrapper(main)
python curses_sample.py で実行したら、押したキーが表示された。一応キー入力を取得することはできるらしい。ESCキーかqキーを押せば終了。
しかし…。コレってキーの同時押しを取得できないのでは…。1文字ずつ入力されることを前提にしてるような…。
ちなみに、上記スクリプトは VMware + Ubuntu Linux 16.04 LTS上でも動いた。Linux上ではデフォルトインストール状態で動いてしまうのだな…。ズルイ…。
[ ツッコむ ]
以上です。