外部コンピュータでプログラムを作成して遠隔実行する
目次
ここでは、外部コンピュータ(ラップトップやデスクトップ)でプログラムを編集して、その実行だけラズパイで行う方法を説明します。これが、どう便利なのかについては、「Pythonの使い方を学習・試してみる」を参照ください。
ラズパイ側でSSHを利用可能にする
まずは、ラズパイ側の設定から。ラズパイメニューから「Preferences」をクリックし、「Raspberry Pi Configuration」を選択します。開いたウィンドウの中で「Interfaces」をクリックして、SSHという項目を「Enable」にします。
「OK」ボタンをクリックするとラズパイがリブートします。
外部コンピュータにThonnyをインストール、設定する
外部コンピュータ(ラップトップやデスクトップ)に、Thonnyをインストールします。https://thonny.org/からダウンロードしてください。
外部コンピュータでThonnyを起動し、「Tools」というメニューから「Options」を選択。開いたウインドウの中で「Interpreter」のタブをクリックし、「Remote Python 3 (SSH)」を選んでください。
さらに、同じウインドウの中で、次の設定をしてください。
- Host: <ラズパイの名前>.local(上の写真ではpandaがラズパイの名前)ラズパイの名前>
- Username: pi
- Authentication method: password(デフォルトの選択肢)
- Interpreter: python3
「OK」ボタンをクリックすると、ラズパイのパスワードを求められます。パスワード入力後、数秒すると、Thonnyのウインドウの一番下にある「Shell」というところに、
Python 3.x.x (/usr/bin/python3 on panda.local)
という表示がでます(xの部分の数字は重要ではないので、どうなっていても構いません)。これは、外部コンピュータ上のThonnyがラズパイへのログインに成功して、ラズパイ上でプログラムを実行可能な状態になっているということです。
プログラムをラズパイで遠隔実行する
いよいよ、外部コンピュータでプログラムを編集して、ラズパイで遠隔実行します。まずは既存のプログラムのファイル(.pyファイル)を開きます。Thonnyのメニューかボタンをクリックして、開くファイルを選択しようとすると、どのマシンからファイルを開きたいか聞かれます。
- This computer
- <ラズパイの名前>.local ラズパイの名前>
ラズパイに保存されているファイルを開くには、2つ目の選択肢を選びます(<ラズパイの名前>.local)。ファイルを選択すると、ラズパイから外部コンピュータにそのファイルが(WiFi経由で)コピーされ、外部コンピュータ上のThonnyに表示されて編集できるようになります。そのファイルを上書き保存すると、ラズパイへ転送・保存されます。別名で保存しようとすると(Save asしようとすると)、ラズパイに保存するか外部コンピュータに保存するかを尋ねられます。プログラムを実行する際には、Thonnyはラズパイに保存されているプログラムをラズパイ上で実行します。実行結果やエラーメッセージなどは、(外部コンピュータ上の)Thonnyの「Shell」に表示されます。ラズパイの名前>
外部コンピュータに保存されているファイルを開くには、1つ目の選択肢を選びます(This computer)。この方法は、GitHubなどからダウンロードしてあるプログラムを開いて編集する際に便利です。プログラムを実行する際に、Thonnyが(WiFi経由で)ラズパイにプログラムを送り、ラズパイがそれを実行します。実行結果やエラーメッセージなどは、Thonnyの「Shell」に表示されます。
ファイルを新規作成する時にも、どのマシンにそのファイルを保存したいか聞かれます。
- This computer
- <ラズパイの名前>.local ラズパイの名前>
選択した方のマシンにファイルが保存され、その実行はラズパイ上で行われます。
Thonnyの設定を元に戻すには
ラズパイ上でプログラムを遠隔実行する設定を元通りの設定に戻すには、「Tools」というメニューから「Options」を選択し、開いたウインドウの中で「Interpreter」のタブをクリックし、「The same interpreter which runs Thonny (default)」を選んでください。
「OK」ボタンをクリックすると、Thonnyのウインドウの一番下にある「Shell」に
Python 3.x.x (bundled)
という表示がでます(xの部分の数字は重要ではないので、どうなっていても構いません)。これは、外部コンピュータ上に保存されたプログラムを、外部コンピュータ上で実行する(デフォルトの)設定に戻ったということです。
ちなみに、「Interpreter」というのは、プログラムを動かす実行エンジンのことです。ラズパイと外部コンピュータのそれぞれに実行エンジンがあるので、上記の「Options -> Interpreter」の設定を変えることで、どちらの実行エンジンを使うか指定しています。