Raspberry Piのプログラム開発環境IDLEを使ってみる
2017/02/20
Raspberry Piで電子工作をするには、プログラミングは欠かせませんよね。
今回は、Raspberry Piに備わっているプログラム開発環境IDLE(アイドル)の基本的な使い方についてです。
さて、Raspberry PiではPythonを使う方が多いと思いますが、Pythonに限らず、どの言語も覚えるのは一苦労ですよね。
でも、ある程度自分でプログラミングが出来るようになって、次の段階で苦労するのが、プログラムのバグ(エラーのこと)の修正だと思います。
どこが悪いのかわからず困ってしまうこともしばしば。
そこで頼りになるのが、総合的にプログラミングをサポートしてくれる開発環境です。
とは言っても、開発環境のどこが良いのかわからないうちは、慣れるまでが苦痛です。
だって、いちいち開発環境を使わなくても、ほとんどの言語はLeaf Padのようなエディタでも作れますから。
その点、Raspberry Piの開発環境IDLEは初心者でも比較的わかりやすいです。
それでは、IDLEの基本的な使い方については以下のとおり。
①TightVNCサーバーでリモート接続する場合の注意
②入力モードを「英数」に切り替えておく
③LX Terminalを開き、IDLEを起動
④プログラムを作成
⑤プログラムをファイルとして保存
⑥IDLE上でプログラムファイルを実行・停止
⑦CUIでプログラムファイルを実行・停止
それでは詳細の説明です。
①TightVNCサーバーでリモート接続する場合の注意
もし、TightVNCサーバーでリモート接続してIDLEを使う場合、TightVNCサーバーの起動は、管理者権限「sudo」を付ける必要があるようです。
私の場合、「sudo」無しでリモート接続した時に、IDLEが使えなかったので(もしかしたら他に原因があるのかもしれません)。
Raspberry PiのLX TerminalでCUIを開きます。
リモート接続の場合は、次の2ステップでの接続になります。
PCから
1ステップ:Teratermでリモート接続(CUI画面)しTightVNCサーバーを起動
2ステップ:TightVNCでリモート接続(GUI画面)
ここでは1ステップ目にあたります。
「sudo tightvncserver :1 -geometry 1280x800 -depth 24」と入力してENTERキーを押すと、管理者権限でTightVNCサーバーが起動します。
②入力モードを「英数」に切り替えておく
入力モードが日本語環境になっていれば、「英数」に切り替えておきます(この画面は、IBUS Anthyをインストールしている場合)。
③LX Terminalを開き、IDLEを起動
「sudo idle &」と入力してENTERキーを押します。
後ろに「&」が付いていますが、これはIDLEをバックグラウンドで動かせるようにするものです。
つまり、IDLEが動いていても他のアプリを使うことができるようにするということです。
IDLEが起動すると、Python Shellというウィンドウが開きます。
下の画像のように、一番上に「Python (バージョン番号) Shell」と表示されます。
Python Shellは、プログラム実行時の状態を表示するウィンドウです。
④プログラムを作成
新しいプログラムファイルを作成してみます。
Python Shellのメニューバーの「File」から「New File」をクリックします。
*作成済みのプログラムファイルを開く場合は、「Open...」をクリックし、プログラムファイルを選択します。
すると、一番上に「Untitled」と表示されたエディタと呼ばれるウィンドウが開きます。
この中に文字を入力し、プログラムを作成します。
エディタにプログラムを入力してみました。
⑤プログラムをファイルとして保存
エディタで作成したプログラムを、ファイルとして名前を付けて保存します。
エディタのメニューバーの「File」から「save as...」をクリックします。
「File name」欄にファイル名を入力、「Files of type」でどの言語のプログラムかを選択して「Save」をクリックします。
⑥IDLE上でプログラムファイルを実行・停止
エディタ・ウィンドウの一番上が「Untitled」からファイル名に切り替わったのを確認し、メニューバーの「Run」から「Run Module」をクリックします。
エラーが無く正常に動けば、Python Shellのウィンドウに「RESTART」と表示され、次に「>>>」が表示された状態になります。
プログラムを止めるには「Ctrl」+「C」キーを押します。
⑦CUIでプログラムファイルを実行・停止
プログラムファイルを、IDLE上ではなくCUIで実行する方法です。
まず準備が必要です。
実行したいプログラムファイルに実行権限というものを付加して、コマンドで直接実行できるようにします。
「chmod +x (プログラムファイル名)」と入力してENTERキーを押します。
直接実行できるようになったプログラムファイルを実行するには、
プログラムファイルのパス(*)を入力してENTERキーを押します。
ここで注意!
上のように、プログラムファイルのパスだけで実行できるのは、プログラム内の一番上に以下の記述がされている時だけです。
Pythonコマンドの場合では「#! /usr/bin/env /usr/bin/python」または「#! /usr/bin/env python」と記述しておきます。
この記述が無い場合、プログラムを実行する度に、パスの前に「python」という指定(Pythonの場合)が必要になります。
「python ./sw-camera.py」
終了する時は、IDLEの時と同様「Ctrl」+「c」キーを押します。
*パスって何?
パスというのは、プログラムが保存してある場所を指し示すものです。
パスには、絶対パス(フルパスともいう)と相対パスがあります。
・絶対パスとは、OSの大元のディレクトリ(ルート)を基準にします。
そこから「/」で仕切りながらディレクトリをたどり、最後にファイル名を記述するものです。
例えば、piディレクトリの中の「sw-camera.py」というプログラムファイルを指定する場合、絶対パスは「/home/pi/sw-camera.py」となります。
・相対パスとは、現在のディレクトリを基準にします。
そこからディレクトリをたどって、最後にファイル名を記述するものです。
相対パスの場合、現在のディレクトリと同じ場所「./」や、現在のディレクトリの場所から1つ上のディレクトリ「../」、2つ上のディレクトリ「../../」といった記述が必要になってきます。
画像に表示されているパスは、現在のディレクトリ「./」と同じ場所の「sw-camera.py」というプログラムファイルを指し示しています。
例えば、絶対パス「/home/pi/program」の場所から1つ上の「/home/pi」内のプログラムファイル「sw-camera.py」を相対パスで指し示す場合、「../sw-camera.py」または「.././sw-camera.py」という記述になります。
ちょっとややこしいかな?