PyCharmでリモートのラズベリーパイのプロジェクトを開発します


背景

最近ラズベリーパイを使ってIoTプロジェクトを開発しています。純粋なウェブ開発、アプリ開発とは違うのは、実際にセンサーと繋がってデータを取得することがあります。もちろんモックサーバーのようなモックセンサーを作れば、大分楽ですが、楽しさがなくなります。
私、普段ローカルプロジェクトをPyCharmを使って開発をしています。もしリモートのラズベリーパイにあるプロジェクトもPyCharmを介して開発を進めれば、とても便利になります。
この記事は↑について説明します。

目標

上のフローでは、ローカルPCで開発したものを手動でリモートのラスベリーパイにアップロードし、そしてリモートの環境でさらに実行する必要があります。

下のフローでは、ローカルPCで開発したものを自動的にリモートのラズベリーパイにアップロードします。そして、ローカルPCにインストールされてあるpycharmのPython InterpreterはリモートのPython Interpreterに指しています。そのため、Pycharmから直接リモートのPythonファイルが実行できます。

操作

1. ローカルのプロジェクトディレクトリーをPycharmから新規作成します。(既存プロジェクトならそのまま開きます)

2. リモートでプロジェクトのディレクトリーを作成します

pi@raspberrypi:~ $ mkdir TestIoT

3. Project Interpreterを設定します

4. SSH Interpreterを設定します

5. Python Interpreter設定、とディレクトリーマッピング設定


PycharmのPython InterpreterをリモートのPython Interpreterに指します。

①リモートのPython Interpreterを以下のコマンドで確認します

pi@raspberrypi:~/TestIoT $ which python3
/usr/local/bin/python3

②リモートのプロジェクトパースを以下のコマンド確認します。

pi@raspberrypi:~ $ cd TestIoT/
pi@raspberrypi:~/TestIoT $ pwd
/home/pi/TestIoT

ちなみに、<Project root>はPycharmから新規作成したローカルの開発ディレクトリーです。(もしくは既存のプロジェクトディレクトリーです)
環境設定->Project->Project Structureで確認します。


Overwriteをして確定します。
※リモートのフォルダーは新規作成のフォルダではない場合は、要注意。

6. リモートInterpreterとディレクトリーマッピングを確認します


設定したら、①と②は変わります。

7. ディレクトリーマッピング設定したら、自動アップロードが始まります。

8. 動作確認


ローカルで新規Pythonファイルを作成し、実行したら、実はリモートのPythonファイルが実行されます。