久しぶりにRaspberryPi(以下、ラズパイ)で遊んでた。
開発環境(IDE)は、【Thonny】を使用している。
【無限ループを作って、指定のキーボードが押されたらループを抜ける】処理を作りたかったわけ。。。
その時に使ったパッケージ【keyboard】でImportErrorが出て解決するまでのお話。
状況の整理
冒頭に述べているけど、開発状況を整理します。
■ハード :Raspberry Pi ■OS :Raspberry Pi OS ■開発言語 :Python 3.9.2 ■開発環境 :Thonny ■パッケージ:keyboard
どんなエラーが出たのか?[ImportError]
出たエラーは、下記のエラーです。
ImportError: You mustbe root to use this library on linux.
正直、調べたサンプル通りにしたのに。。。と思いながら、エラーを翻訳する。
《Linux でこのライブラリを使用するには、root である必要があります。》
・・・・
なるほど、【管理者権限(rootユーザー)で実行しないといけないよ】って書いてあるんだな!!
Thonnyを管理者権限(root)で実行する
エラー内容が分かったので、次は「Thonnyをrootで起動」させようと思います。
まずは、【Terminal(ターミナル)】を起動してください。
そして、下記コマンドを実行します。
sudo␣thonny␣(pythonファイルパス)
すると、いつも通りにThonnyが起動します。
そして、先ほどのpythonプログラムを実行してみます。
実行する事が出来ました。
まとめ
ラズパイでpythonプログラムを作る時は、標準で入っている開発環境である【Thonny】を選択する人は多い事でしょう。
ラズパイのメニューからThonnyを起動した場合、ユーザーとして起動している為、root権限が必要なアクセスが必要なパッケージの場合、エラーが出てしまいます。
分かってしまえば、簡単な対応方法なのかもしれません。
root権限を気にしないといけないと思うと少し不便ですね。。。
使えない事はないですが、自分はパッケージ[keyboard]を使う事を諦めました。
代わりに【pynput】というパッケージを使って対応しました。
pynputの使い方については、また別のタイミングで!
業務でプログラミング(C#/VB/Python)を作っている。
挫折を何回も繰り返し、幾度の壁を乗り越えてきた。
乗り越えてきた事を忘れないように記録に残す。
同じ思いをしている人への情報提供になれたらと思う。
基本は初心者に向けたプログラムの情報を提供する。
コメント