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上ではデフォルトインストール状態で動いてしまうのだな…。ズルイ…。
[ ツッコむ ]
以上です。