###背景###
最近ラズベリーパイを使って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. ディレクトリーマッピング設定したら、自動アップロードが始まります。####
ローカルで新規Pythonファイルを作成し、実行したら、実はリモートのPythonファイルが実行されます。
###まとめ###
要するには、PyCharmのPython InterpreterをリモートのPython Interpreterに指しことによって、PycharmからラズベリーパイのPythonコードを実行できます。ついでに、ディレクトリーマッピングの設定もできます。それによって、Pycharmの編集は直ちに、リモートに反映されれます。