プロが教える店舗&オフィスのセキュリティ対策術

ラズパイ3 ModelB にて pythonを学習を始めてます。
本の通りの プログラムを打ち込みましたが、実行するとエラーになって進みません。

どうもライブラリの設定関係と思われますが、初心者には手に負えません。
教えていただくようお願いいたします。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

以下プログラムですが、エラーに関係なさそうなところは略してます

#! /usr/bin/env python3

import curses        キー操作を行うためのライブラリを読み込みます

stdscr = curses.initscr()   キー入力を行うオブジェクトを生成します

c = stdscr.getch()      キー入力を読み込みます

   if ( c  ==  ord(‘a’)) 略


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

エラーメッセージ

File “<string>”, line13 ,in <module>
File “/usr/lib/pyton3.9/curses/ init ,py”, line29 in initscr
setupterm(term=_os.environ.get(“TERM”,”unknown”),
_curses.error : setupterm: could not find terminal

質問者からの補足コメント

  • 補足 2023/4/16
    ご回答ありがとうございました。環境変数TERMというのは、私の力ではどうすればいいのか、ネット情報を見ても分かりませんでした。

    私の実行環境はラズパイのThonnyだったのですが、ご教示のcursesと言うのが悪いとすれば、CUI環境でPython3を動作させれば変わるかと思い、やってみました。
    しかし 「python3 ソースファイル名」 を打ち込んでも無応答になるばかりでした。
    念のため、ファイルの中身に簡単なprint命令だけを入れて、実行させると正しく動作しますので、やはりソースの内容が悪いという事だと思います。

    プログラムソースから、キーボード入力を受ける部分を仕様変更改造して、タクトスイッチをonする仕様にするなどして、先へ進む予定です。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/04/16 17:06

A 回答 (1件)

「環境変数 TERM」で検索してみてください。




文字端末は、通常は出力した文字は、現在のカーソル位置に、そのまま表示され、カーソルが一つ右へ(右端を越えたら次の行の先頭へ)移動します。
ですが特殊な文字列を出力すると、表示の代わりに特殊な効果が表われます。(カーソルを任意の箇所へ移動する、表示色が変わる等)
この特殊な文字列を「エスケープシーケンス」と呼んだりします。
文字端末を使ったエディタ(vi,nano等)は、このエスケープシーケンスを使って画面表示を制御しています。

エスケープシーケンスは端末の種類や設定によって違います。
そのため、ある端末向けの色を変えるエスケープシーケンスを出力したら、それに対応していない端末で文字化けした、なんてことが発生します。
そこで、プログラム側で「色を変える命令」を実行したら、端末によって適切なエスケープシーケンスを出力されるような仕組みを用意しました。
それの一つがcursesです。PythonのcursesモジュールはこのcursesをPythonから使うためのモジュールです。

端末毎の設定はtermcapまたはterminfoというデータベースに保存されています。
これらのデータベースから現在の端末に合わせた情報を探します。
このとき、一般に環境変数TERMに設定されたもので検索します。


>_curses.error : setupterm: could not find terminal
とあるように、指定した端末に該当するデータベースが無かった、ということのようです。

>setupterm(term=_os.environ.get(“TERM”,”unknown”),
とあるので、環境変数TERMを参照しています。

このことから、考えられるのは
(1)環境変数TERMが不適切
(2)termcapまたはterminfoの情報不足
です。
よほど特殊な端末でなければ(2)は考えられないので、(1)でしょう。
環境変数TERMを適切の設定してください
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。 仕事を持っていまして、結果を試すまでに、1から2日ほど下さい。
ただ本のサンプルプロには、TERMなどと言う記述は全くないので、ご教示の「TERM」をネットで調べてからになります。

お礼日時:2023/04/13 17:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!