明日の自分のために

主に自分用のメモなど

IntelliJ IDEA / PyCharm + RaspberryPiでリモート開発・デバッグ

Raspberry Pi上で動作させるPythonプログラムを作る際に、PC上のIntelliJ IDEA or PyCharmで開発しているが、実行・動作確認はRaspberryPi上で行いたい場合があったのでその方法のメモ。このメモはWindows上で設定したが、先にLinuxでも試してうまく行った。

PC上で開発し、そのまま実行すればRaspberryPi上で実行されるし、ブレークポイントも張れるし超便利。

必要なもの

  • IntelliJ IDEA / PyCharmの有料版 Deployment機能を使うことにしたため有料版が必要になる。ちょうど半額セールのときに買ったので活用してみることにした。
  • 開発環境が構築され、SSH接続ができるように設定されたRaspberry Pi

設定

Deploymentの設定

メニューのTool -> Deployment -> Configurationを選択する。
左上の+ボタンを押してリモート環境(ここではRaspberryPi)を追加する。とりあえずNameはRaspberryPi、TypeはSFTPに指定しておく。

リモート環境が追加されるので各設定項目を埋めていく。必要であればMappingでローカルとリモートのディレクトリ対応を定義しておく。 f:id:gan0803:20180815150635p:plain

リモートのPython環境の指定

File -> ProjectStructureを開き、Platform Settings -> SDKを選択する。 左上の+ボタンを押してPython SDKを追加する。ここでリモートの環境を指定するためにSSH Interpreterを選択する。 Existing server configurationで先ほど作成したRaspberryPiの環境をDeployment configurationに指定する。(そのままだとできないのでMove this server to IDE settingを選択した) f:id:gan0803:20180815151350p:plain

次の画面でPython Interpreterを指定する。virtualenvのPython環境を指定してもうまく行った。他の設定項目1はそのまま。 これでリモートのPython環境が追加できた。 File -> ProectStructureを開き、ProjectSettings -> ProjectのProject SDKで今作成したRemote Python環境を指定すれば、IDEA / PyCharmでプログラムを実行したときにRaspberry Pi上で実行される。AutoSyncも有効になっていれば(デフォルトで有効)作業内容が自動的にRaspberry Piにアップロードされる。

試しにプログラムを実行(IDEA / PyCharmの再生ボタン押下)してみるとRaspberryPi上でプログラムが実行されていることがわかる。

PC画面上のエラーの解決

Raspberry Pi上での環境構築が正しくされていれば上記実行はうまくいくはずだが、PC上のIntelliJ IDEA / PyCharmではUnresolved Referenceのエラーが出ている。
ちゃんとした解決方法はよくわからないが、File -> ProjectStructureのPlatform Settings -> SDKsを開いて、とりあえずローカルのinterpreterの設定のclasspathを持ってきてリモートのinterpreterclasspathにそのまま設定してやる。

参考までに、コピーしたのは以下の項目

参考

以下を参考にしました。