【 Raspberry Pi 】Geany を使ってLEDを光らせる【初心者】

0
4357
Geanyでプログラミング

【 Raspberry Pi 】Geany を使ってLEDを光らせる【初心者】

前回の記事では、Raspberry Pi を使ってLEDを光らせるプログラムを実行するのに使う開発環境の比較をするために、Thonny Python IDE で同じプログラムの実行をしました。
今回は、Geany を使ってLEDを光らせる同じプログラムの実行をしてみたいと思います。

[sitecard subtitle=関連記事 url=http://www.fabshop.jp/raspberry-pi-led-blinking-thonny/ target=]

ファイルを作成して Geany で開く

Thonny Python IDE で行った事と同様にLXTerminal を開いて、ファイルを先に作成してから Geany を起動します。

touch というコマンドで、led_G.py という名前のファイルを作成します。

$ touch led_G.py

Geanyのファイルを新規作成

led_G.py という名前のファイルを geany で開きます。

$ geany led_G.py

LXTerminalからgeanyを起動させる

led_G.py とう名前のファイルが geany で起動しました。

geany 起動

Geany でコードを入力

geany が起動したら、前回の時と同じコードを入力していきます。

(コードはこちらのマニュアルの 7ページ目にあります)

コードの入力が終わったら、保存します。
コードを書いた画面の上にアイコンが並んでいるので、左から3つ目の緑色の矢印のあるアイコンを押すと保存できます。

geanyで保存する

プログラム実行

プログラムを保存したら実行します。
先ほど保存した時と同じアイコンの列にある右から2つ目の飛行機のアイコンです。

geanyプログラム実行

これで問題なければプログラムが正しく実行されます。

IndentationError と ImportError

正しくコードを入力できていれば、プログラムが実行されるはずなのですが、やはりエラーが出ました。

IndentationError: unindent does not match any outer indentation level

geany IndentError

「インデントが他のレベルと一致していない」?ということで、コードの前にある空白の数が間違えてるのかと推測して確認すると、マニュアルとは違っていることに気づきました。

IndentError2

マニュアルと同じ空白数にして保存しました。

geany エラー修正後のプログラム

再び実行すると、次は違うエラーが表示されました。

ImportError: No module named gime

geany ImportError

gime なんて名前のモジュールはない
これは原因がすぐに分かりました。
gime なんて入力した覚えがなかったのと、import という部分で、import は最初に入力していたので、その部分を確認すると、time と入力したはずが gime になっていました。

ImportError原因

ImportError はただの入力ミスでした。

再び保存して実行しました。
やっとプログラムが実行できました。

geanyでプログラム実行

Geany を使ってみて思ったこと

最初に vim エディタを使い、次に Thonny Python IDE、そして今回は Geany を使ってみたので、コードを入力することに慣れてきたせいかもしれませんが、使うごとにこれは便利かもというものがいくつかありました。

関数・変数・インポートの表示

geanyの特徴^関数等の表示

コードを入力するメイン画面の左に補助のように表示されている場所があり、その部分に関数、変数、インポート、などの表示がされています。
それぞれクリックしてみると、メイン画面にそれにあたる部分が矢印で表示されます。

3つに分割された画面表示

geanyの特徴ー分割された画面Thonny Python IDE は、画面はメインとShell と表示された部分と2つでしたが、Geany は3つに分かれています。

インデントの表示が変わる

また、インデント(空白部分)の状態も、場所によっては表示のされ方が変わります。
空白部分にカーソルを移動させると、カーソルの大きさが半角1つ分だったり全角4つ分くらいに変わります。

もしかしたら、vim や Thonny Python IDE でも同じように表示されていたかもしれませんが、今回気づいたのはこのような感じでした。

次回は、Python IDE を使ってまた同じプログラムを実行して検証してみようと思います。