Komodo Edit(4) リモート実行

Komodo EditからPythonプログラムを実行する方法と、Raspberry PiでFTPサーバを動かしてリモート編集する方法は既に書いたが、両方を組み合わせてもRaspberry Pi上のプログラムをKomodo Editから実行する事はできない。

Raspberry PiでSambaを動かして、リモートドライブとしてマウントすれば実行は可能だが、その場合はWindows上で実行されてしまう。

LinuxのプログラムをWindowsからリモート実行させたい場合は、plink.exe を使用するのが簡単。plinkはSSH対応のターミナルエミュレータで有名なPuTTYと同じチームで開発されたユーティリティで、SSH経由でサーバ上のプログラムを実行させることができる。

まずPuTTYのダウンロードページからplinkをダウンロードして、PATHの通った適当な場所(“C:\WINDOWS\system32”等)にコピーする。

次にKomodo EditのToolboxパネルでNew Macroを選択。Toolboxパネルが表示されていない場合は、メニューのView→Tabs&Sidebars→Toolboxで表示させる。

新規マクロとして以下のJavaScriptを登録。Raspberry PiのIPアドレス、ユーザ名、パスワード、作業フォルダは適宜変更する。

if (komodo.view) { komodo.view.setFocus() };
komodo.doCommand('cmd_save')
ko.run.output.kill(-1);
setTimeout(function(){
   ko.run.runEncodedCommand(window,
      'plink -pw raspberry pi@192.168.0.81 python -i ./PythonProjects/%f');
}, 100);

マクロのKey Bindingで適当なショートカットキーも登録しておこう。

Komodo Edit(3)で書いたようにRaspberry Piのフォルダをリモートディレクトリとして設定したら、あとはそこでPythonプログラムを普通に書けば良い。リモート実行マクロに定義したショートカットキーを叩くと、Raspberry Pi上でプログラムが実行されて、以下のように結果が表示される。

remotepi

当然ながら結果が帰ってくるのはコンソールに出力するプログラムだけで、TkinterやPyGameで作ったウィンドウを表示するプログラムでは意味がない。その場合はVNCでリモートデスクトップを使うか、素直にRaspberry Piにモニタを接続して実行しよう。

広告

Komodo Edit(3)

Komodo EditにはFTPサーバのフォルダをプロジェクトフォルダとして扱う機能があって、登録しておけばリモートフォルダをローカルフォルダと同じように扱うことができる。つまりRaspberry PiでFTPサーバを走らせておけば、Raspberry Piのストレージ(SDメモリ)にプログラムファイルを作ったり、編集したりがPCから直接行える。

その為にはまずRaspberry PiにFTPサーバをインストールする必要がある。Raspberry Piを起動して、コンソールから

pi@raspberrypi ~ $ sudo apt-get install vsftpd

と入力してFTPサーバをインストール。インストールが完了したら

pi@raspberrypi ~ $ sudo nano /etc/vsftpd.conf

と入力して設定ファイルを編集する。設定内容は以下の通り。コメントになっている行は先頭の#を消す

Anonymous_enable=NO
Write_enable=YES
Local_enable=YES
Ascii_upload_enable=YES
Ascii_download_enable=YES

編集が終わったら^O(Ctrl+O)、^X(Ctrl+X)を入力して保存し、Raspberry Piを再起動する(sudo reboot)。Raspberry PiのIPアドレスがDHCPからの自動割当になっている場合は、ここで固定IPに設定しておいたほうがこの先便利。設定方法は探せばすぐ見つかるのでここでは書かない。

PCのFTPクライアントを起動して、Raspberry PiのFTPサーバにログインできるか確認。Windowsの場合ならDOSプロンプトを開き、FTPコマンドを実行してユーザ名とパスワード(デフォルトのままならpi/raspberry)を入力する。ログインできればOK。

RaspFTP1

Komodo EditのメニューからEdit→Preferencesを選択し、左側のカテゴリから下の方にあるServersを選択。ここでRaspberry PiのFTPサーバのアカウント情報を設定する。デフォルトパスは入れても入れなくても良い。
RaspFTP2 Add(画像ではUpdateになっている)をクリックして保存したら、Komodo EditのPlacesパネルの歯車アイコンをクリックして、Open Remote Directoryを選択。この時にリモートアカウントの認証ダイアログが出る時があるが、キャンセルして大丈夫。
RaspFTP3リモートフォルダの選択ダイアログが出るので、設定したRaspberry Piのアカウントを選択する。予めPythonProjectsという作業用のフォルダを作っておいたので、それを選択している。このへんは好きなように。
RaspFTP4リモートフォルダに接続できたら、あとはローカルフォルダと同じようにPlacesパネルを右クリックして新規ファイルを作成したり、既存のファイルを編集したりできる。
RaspFTP5でもプログラムの実行はPC側で行われてしまうので注意が必要。エディタ上からRaspberry Piのファイルをリモート実行させるには他にも色々と小細工が必要となるので、それはまた後日。

Komodo Edit(2)

Raspberry Pi用のPythonプログラム開発する為、まずはWindows上でプログラムの練習。という目的でPCにKomodo Editをインストールして、かなり快適にプログラミングできるようになった。そうなると今度はプログラムの実行もエディタから直接行いたくなる。

Komodo Editにはその為の手段が色々と用意されていて、エディタからPythonプログラムを実行するだけなら簡単に実現できる。

メニューのView→Tabs & Sidebars→Toolboxを選択してToolboxパネルを表示したら、歯車アイコンをクリックしてNew Commandを選択する。
Komodo6

新規コマンドのプロパティが開くので「”%(python)” -u “%F”」を登録すれば良い。どのフォルダで実行するかとか、実行結果をエディタ内のCommand Outputパネルに表示するか、新規にコンソール(DOSプロンプト)を開くか、何も開かずに実行するかとかも設定できる。
あとはKey Bindingタブでファンクションキー等に割り当てれば、ワンタッチで実行が可能だ。
Komodo7

実行前にプログラムをSAVEしないと古いファイルが実行されてしまうので、自動的に保存してから実行したい場合は、この方法では実現できない。Komodo Editのフォーラムを探すとマクロで実現する方法があった。

コマンドと同じようにToolboxパネルで今度はNew Macroを選択して、そこにJavaScriptを記述すれば良い。
Komodo8

スクリプトの内容は以下の通り。編集中のファイルを保存して、Command Outputのプロセスを殺してからプログラムを実行している。

if (komodo.view) { komodo.view.setFocus() };
komodo.doCommand('cmd_save')
ko.run.output.kill(-1);
setTimeout(function(){
   ko.run.runEncodedCommand(window, '%(python) -i \"%F\" {\'cwd\': u\'%D\'}');
}, 100);

注意点が一つ。このスクリプトでGUIのPythonプログラムを実行すると、Command Outputのプロセスが残ったままになってしまう。同じスクリプトで再実行する場合はkillしているので問題ないけど、コマンド等で実行した場合はこんなエラーが出る。
Komodo9

その場合はCommand Outputパネルの右上にある停止ボタンをクリックしてプロセスを殺せばOK。

Komodo Edit

Raspberry Pi関係の情報をまとめるために作ったblogなのに、初っ端からRaspberry Piが出てこない話(笑)。でも無関係というわけではない。

Python言語はRaspberry Piの標準開発言語で、Raspbian“wheezy”のデスクトップには最初からPythonの開発環境であるIDLEのアイコンが置かれているくらい推奨されている。そもそもPiはPythonから来ているらしいし。

IDLEは簡単に使えて入門用には良いんだけど、WindowsでVisualStudioとか使っていると物足りなく感じるのも確か。Raspberry Piは低価格マイコンボードとしては高性能だが、それでもOSを走らせてその上で重い開発環境を走らせるほどのパフォーマンスは無いので、Eclipseとかはちょっと無理がある。

と言うことでWindowsで動作するPythonのIDEを探してみた。検索してすぐ出てくるのはEclipseとNINJA-IDEとPyChamで、とりあえず試してはみたけどいまいちピンとこない。しばらくはWindowsでもIDLEを使ったりしていたのだが、Komodo IDEという開発ツールの無償版Komodo Editを最近知った。

Komodo IDEはWindowsとLinuxとMacで使える各種言語に対応した開発環境で、製品版には開発の為の様々な機能があるんだけど、そのエディタ部分だけを分離してフリーにしたのがKomodo Edit。3万5千円ぐらいで売られている製品版の一部だけあって、非常に良くできている。

他のIDEを使用した事があればさほど悩まずに使えると思うけど、Preferencesで「MSゴシック」等の日本語フォント名を指定すると、次回起動時にフォントが正しく設定されない問題があった。
メニューのEdit→Preferencesで「Fonts and Colors」を選び、フォントを選択すると今の設定をベースにして新しいSchemeを作成するか?と聞かれるので適当な名前を入力。そうするとDocuments and Settingsフォルダのユーザ名フォルダにある「Local Settings\Application Data\ActiveState\KomodoEdit\7.1\schemes」にその名前のSchemeファイル(.ksf)が作成される。
このファイルをテキストエディタで開き、CommonStylesのdefault_fixed、default_proportionalに設定されてあるフォント名を日本語名ではないファイル名に修正すれば、正しく設定されるようになる。
MSゴシックなら「MS Gothic」、MS明朝の場合は「MS Mincho」に修正する。プロポーショナルは「MS PGothic」「MS PMincho」だ。修正してKomodo Editを起動し、PreferencesでSchemeを選択すればOK。
Komodo1

デフォルトではコメント行が斜体で灰色文字になっているのも気に入らないので、これもPreferencesのFonts and Colorsで変えておく。
Komodo2

設定した状態の画面がこれ。VisualStudioと似た感じになった(笑)。
Komodo3

Project用のフォルダを新たに作成し、画面の左側にあるPlaceパネルでそのフォルダを選択してRootに設定しておくと使いやすい。
Komodo4Komodo5