IntelliJ IDEAのSSHインタープリターの設定を理解するための整理
IntelliJ IDEAやPyCharmなどには、
リモートインタープリターという機能があり、
この機能を使うと、RemoteHostのPython等でデバッグをすることができます。
※Ultimate版の機能です。
この機能は、公式ドキュメントの手順通りで利用できます。
リモートPythonインタープリターの構成 | IntelliJ IDEA
https://pleiades.io/help/idea/configuring-remote-python-sdks.html
が、
いくつかの設定が関連しているので、
設定の関係を理解していないと、
環境が変わった時などの、設定変更に困ってしまいます。
このような課題に対応するため、
このエントリではこれらの設定の関連を整理したいと思います。
リモートインタプリター機能を図に示すと、次のようになります。
※Pythonの場合。以降、Python想定で記載します。
IDEAからスクリプトを起動すると、
- ソースコードをRemoteHostにコピー
- RemoteHostのPythonで、ソースコードを実行
という流れで、処理が実行されます。
先ほどの図に、
これを実現するために必要な設定を加えたものが、次の図になります。
次の4つの設定が必要になります。
- SSHの設定 ... RemoteHostへの接続情報
- Deploymentの設定 ... RemoteHostの配備先パスの情報
- SDKの設定 ... Pythonコマンドのパスの情報
- Mappingの設定 ... Project配下・Remoteの配備先パスの対応情報
SSHの設定は、
Preferences -> Tools -> SSH Configurations から設定ができ、
設定ファイルはsshConfigs.xml
です。
Deploymentの設定は、
Preferences -> Build,Execution,Deployment -> Deployment から設定ができ、
設定ファイルはwebServers.xml
です。
SDKの設定は、
Project Structure -> SDKs から設定ができ、
設定ファイルはjdk.table.xml
です。
Mappingの設定は、
Preferences -> Build,Execution,Deployment -> Deployment で、
利用するDeploymentを選択した後の、Mappingsタブから設定ができ、
設定ファイルは.idea/deployment.xml
です。
Mappingの設定以外は、IDEA全体の設定、
Mappingの設定は、プロジェクト毎の設定です。
# IDEA全体の設定ファイルは、
# ~/Library/Application Support/JetBrains/IntelliJIdea2021.3/options/
# 等にあります(macosの場合)。
これらの設定には、次の依存関係があります。
SSHの設定 <- Deploymentの設定 <- SDKの設定
図に示すと、以下のとおり。
これらの設定によって、
IDEAからスクリプトを起動すると、
- ソースコードをRemoteHostにコピー
(Mappingの設定に従って、RemoteHostにファイルをコピー) - RemoteHostのPythonで、ソースコードを実行
(SDKの設定で指定されたPythonコマンドを実行)
という処理が実施されます。
環境の変更や、設定を変更してリモートインタープリターが上手く動かなくなった時は、
これらの設定をチェックしてみてください。
一つ注意点ですが、
Deploymentの設定は、Visible only for this projectをチェックすることで、
プロジェクト毎の設定に出来るのですが。
SDK(IDEA全体の設定)が依存出来なくなるので、チェックしてはいけません。