IntelliJ IDEAやPyCharmなどには、
リモートインタープリターという機能があり、
この機能を使うと、RemoteHostのPython等でデバッグをすることができます。
※Ultimate版の機能です。

この機能は、公式ドキュメントの手順通りで利用できます。

リモートPythonインタープリターの構成 | IntelliJ IDEA
https://pleiades.io/help/idea/configuring-remote-python-sdks.html

が、
いくつかの設定が関連しているので、
設定の関係を理解していないと、
環境が変わった時などの、設定変更に困ってしまいます。

このような課題に対応するため、
このエントリではこれらの設定の関連を整理したいと思います。

リモートインタプリター機能を図に示すと、次のようになります。
※Pythonの場合。以降、Python想定で記載します。

SSHリモートインタプリターの概要

IDEAからスクリプトを起動すると、

  1. ソースコードをRemoteHostにコピー
  2. RemoteHostのPythonで、ソースコードを実行

という流れで、処理が実行されます。

先ほどの図に、
これを実現するために必要な設定を加えたものが、次の図になります。

SSHリモートインタプリターの設定

次の4つの設定が必要になります。

  1. SSHの設定 … RemoteHostへの接続情報
  2. Deploymentの設定 … RemoteHostの配備先パスの情報
  3. SDKの設定 … Pythonコマンドのパスの情報
  4. 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の設定

図に示すと、以下のとおり。

SSHリモートインタプリターの設定の依存関係

これらの設定によって、
IDEAからスクリプトを起動すると、

  1. ソースコードをRemoteHostにコピー
    (Mappingの設定に従って、RemoteHostにファイルをコピー)
  2. RemoteHostのPythonで、ソースコードを実行
    (SDKの設定で指定されたPythonコマンドを実行)

という処理が実施されます。

環境の変更や、設定を変更してリモートインタープリターが上手く動かなくなった時は、
これらの設定をチェックしてみてください。

一つ注意点ですが、
Deploymentの設定は、Visible only for this projectをチェックすることで、
プロジェクト毎の設定に出来るのですが。
SDK(IDEA全体の設定)が依存出来なくなるので、チェックしてはいけません。