はじめに
JetBrainsのIDEじゃないと開発できない体になってしまったので最初はRaspberryPi(以下ラズパイ)にPyCharm入れようと思ったのですがあまりにも非力すぎてIDE動かすのは無理ということでMacのPyCharmから操作できないかなと思って調べました。
公式のリファレンスが古い&ディレクトリのマッピングまでは載ってなかったので書いておきたいと思います。
ssh接続はProfessional版でしかできません。
環境
macOS Catalina
Raspberry Pi 3 Model B+ OS:Raspberry Pi OS(GUI版で検証しています)
PyCharm 2021.1.2 Professional
本文
0. 前準備
マイコンでssh接続とかVNC使うときのお決まりを書いてるだけなのでわかる方は読み飛ばしてください。
IP固定化
起動する度に接続先修正するのが微妙なので固定化しちゃいます。
以下を参考に固定化しましょう。
ラズパイ側のSSH有効化
GUIなら設定からSSHを有効にするだけです。
1. ラズパイ側
Mac側のディレクトリとマッピングするためのディレクトリを作成しておきます。
pi@raspberrypi:~ $ mkdir qiitaproject
pi@raspberrypi:~ $ ls
Bookshelf Documents Music Public Videos nfcpy
Desktop Downloads Pictures Templates nfclocker qiitaproject
2. PyCharm側
任意のPythonプロジェクトを作成して右下のインタプリタの設定でInterpreter Setting...を選択
インタプリタの設定が出るので Python Interpreterの歯車からAddを選択
SSH InterpreterのNew server configurationのHostにラズパイのIPを指定
UserNameはラズパイのユーザー名(デフォルトでpi)
Portはデフォルトで22なので何もしてなければそのままで大丈夫です。
次画面のpasswordはユーザー名に対するパスワードを入力してください。(さすがに貼ると怒られそうなので)
正常に接続できると使うインタプリタの設定画面が出ます。
デフォルトが/usr/bin/pythonになっています。
これはRaspberry Pi OS:2021-05-07の時点でPython2.7です。
2系を使う方はそのままで大丈夫ですが自分は3系にしたいので変更します。
右のディレクトリマークをクリックするとラズパイに接続して中身が見れるのでデフォルトで入っている3系である/usr/bin/python3.7のインタプリタを選択します。
Sync foldersには最初に作成したマッピングしたいディレクトリを選択します。
Local PathがMac側の現在のPyCharmプロジェクト Remote Pathが最初に作成したラズパイ側のディレクトリです。
Execute code using this ~ sudoはPyCharmからコマンドを実行するときにsudoをつけるかどうかというチェックボックスなので、ラズパイ側で特に何もしてなければチェックしておきましょう。
Automaticlally ~ serverはファイルの変更があった場合自動でラズパイにアップロードしてくれるモノですが設定しても次回起動時から手動に勝手に変わるのでどちらでも大丈夫です。
以下はチェックしなかった場合で進めます。
OKを押すと初回のみラズパイ側との初回設定が始まるので待ちます。(5分くらいかかります)
3.実行
準備はできたので早速ラズパイ側にコードをアップロードして実行してみましょう。
アップロードしたいファイルを右クリックしてDeployment→Upload to... でアップロードします。
PyCharmでRun
ssh://pi@192.168.11.50:22/usr/bin/python3.7 -u /home/pi/qiitaproject/main.py
Hi, PyCharm
Process finished with exit code 0
最後のRunでディレクトリが見つからないエラーが出る場合
今回やっていて毎回再現できるわけではないのですが、アップロードはできるけどRunしたときにうまくパスを入れてくれないエラーが出てきました。
その場合はもう一度以下のPython Interpreterからマッピングし直してみてください。
これじゃ動かないよとかありましたらコメントください。
参考