PyCharm リモート開発環境の作成
目次
概要
PyCharmでリモート開発を開始する歳の、リモートインタプリタの設定手順です。
毎回毎回忘れてハマるので、必ず動く手順を確立して残しておきます。
手順
PyCharm→Preferencesで設定画面を開く。
※特定のプロジェクト専用の設定ではなく
Default Preferences 画面でProject Interpreterを選択
Add Python Interpreter画面
左ペインでSSH Interpreterを選択。
右ペインで接続先のホスト名、ユーザ名を指定してNext。
認証方式を選択。
本例では秘密鍵認証を使うため、Key Pairのパスを指定。
秘密鍵にパスフレーズを指定している場合は、Passphraseを指定。
接続と認証に成功すれば、Interpreterのパスを要求される。
Python3を基本としたいので、/usr/bin/python3
を指定し、Finish。
Project Interpreter画面に戻る。
右ペイン内、Project Interpreter:に
Remote Python(バージョン番号) ホスト名:22/Pythonのパス
が表示されている。
右のメニューからShow Allを選択。
PyCharmに登録済のInterpreter一覧が表示されるので、
先ほど登録したRemote Pythonを選択して、ウインドウ下部の鉛筆アイコンを選択。
Configure Remote Python Interpreter画面
Deployment configurationを選択
ここにはインタプリタ登録時に指定した情報が表示される。
(変更はせず、内容の確認だけでよい)
SSH Credentialsを選択
ここもUser名、鍵ファイルパスが正しく入っていることを確認。
OKを選択。
Project Interpreter画面に戻るので、Applyを選択。
確認のため、テスト用のプロジェクトを1つ作成する。
【ここ重要】
New Project 画面
画面上部のLocation:欄
開発を実行するローカルPC側のPyCharmプロジェクトフォルダパスを入力。
例えば自分のMacBookの場合は
/Users/kowloon/PyCharmProjects/プロジェクト名
↑ あくまでローカルPCのパス。
リモート側のサーバにこのパスが存在しなくてもよい。画面中腹のInterpreter:欄
さきほど作成したリモートインタプリタ(Remote Python(バージョン番号)と表示されている)を選択画面最下部のRemote project location: 欄
実際にPythonのコードを実行するリモートのサーバ側のPyCharmプロジェクトフォルダパスを指定。
例えば本例では
/home/kowloon/プロジェクト名
↑ あくまでリモートのサーバ側のパス。
ローカル側のPCにこのパスが存在しなくてもよい。
ここでリモート側のパスを指定し忘れると、/tmp/配下に自動で作成されてしまう。
必ずリモート側のパスを明示的に指定しましょう
ここまで入力してCreateを実行。
PyCharm → Preferencesを選択
Preferences画面
左ペインでBuild,Execution,Deployment → Deployment を選択
右ペインのMappingsタブを選択
Local Path:
Deployment path on server:
それぞれローカルPC、リモートのPython実行サーバの双方に実在するパスであることを確認。
テスト用のコードを作成して保存。
PyCharm画面のログにてAutomatic Uploadが成功していることを確認。
テスト用のコードをRun。
PyCharm画面のログにて
ssh://ユーザ名@ホスト名:22/Pythonのパス -u Pythonファイルのパス
実行結果
が表示されること。
ここでよくあるエラーは
- ssh://ユーザ名@ホスト名:22/Pythonのパス -u Pythonファイルのパス
の、最後のPythonファイルのパスがリモート側ではなく、ローカル側と同じパスになっているため、スクリプトファイルが存在しないエラー
↓
PreferencesのDeploymentにて、Mappingsタブを見直し
正しくリモート側のパスが指定されているか
PyCharmプロジェクトフォルダを確認。
【ローカルPC側】
プロジェクトフォルダ内にPythonファイルが生成されている。
PyCharmのリモート開発は、実際にはこのフォルダにいったんファイルを作成して、それをssh(SFTP?)でPUTしているからくり。
【リモート側】
プロジェクト作成時にRemote project locationで指定したパスに、ファイルが作成されている。