PyCharm 2020.1ヘルプ

リモート PyCharmによるデバッグ

PyCharmを使用すると、Webサーバーや専用のテストマシンなど、他のコンピューターにあるインタープリターを使用してアプリケーションをデバッグすることができます。

PyCharmには、リモートでデバッグする2つの方法があります。

  • リモートインタープリターを介して

    ケース : リモートマシンで利用可能な拡張デバッグ機能を利用するためにこのアプローチを使います。

    要件 : ローカルマシンからリモートサーバーへのSSHアクセス。

  • Python リモートデバッグサーバー設定を使用します

    ケース : このアプローチを使用して、リモートサーバー上で実行中の一連のプロセスにデバッグプロセスを統合します。これは、デバッグのためにアプリケーションを明示的に実行できない場合や、いくつかの準備作業が必要な場合に役立ちます。

    要件 : ローカルマシンからリモートサーバーへのSSHアクセス、リモートサーバーからローカルマシンへの事前定義ポートを使用したアクセス。

始める前に

次の準備作業を完了します。

  1. ローカルマシン上で、セクション空のプロジェクトを作成するに従って、純粋なPythonプロジェクトを作成します。

  2. このプロジェクトにPythonファイルを追加します(Alt+Insert - Python ファイル)。

  3. Python ファイルに次のコードを追加します。

    import math class Solver: def demo(self, a, b, c): d = b ** 2 - 4 * a * c if d > 0: disc = math.sqrt(d) root1 = (-b + disc) / (2 * a) root2 = (-b - disc) / (2 * a) return root1, root2 elif d == 0: return -b / (2 * a) else: return "This equation has no roots" if __name__ == '__main__': solver = Solver() while True: a = int(input("a: ")) b = int(input("b: ")) c = int(input("c: ")) result = solver.demo(a, b, c) print(result)

リモートインタープリター用のデプロイ構成の作成

この例では、アプリケーションを実行するマシンはローカルとして参照され、リモートインタープリターを持つマシンはリモートとして参照されます。

リモートインタープリターを設定する

  1. リモートマシンへのSSHアクセスがあることを確認してください。

  2. 新しいリモートインタープリターをSSH経由でのリモートインタープリターの設定の説明に従ってプロジェクトに追加し、リモートマシンに接続するための資格情報を指定します。

  3. プロジェクト用のリモートインタープリターを作成すると、対応するデプロイ設定が作成されます。プレビューするには、Ctrl+Alt+S をクリックしてローカルマシン上の設定ダイアログウィンドウを開き、ビルド、実行、デプロイノードとデプロイノードをクリックします。

    Deployment configuration

  4. 必要に応じて、すべてのデフォルト設定を受け入れるか、変更することができます。この例では、デプロイ構成に意味のある名前を使用してみましょう(例: "MySFTPConnection" )。

  5. ルート・パス値が、作成されたSSHインタープリターの対応する設定で指定されたパスを反映していることを確認してください(プロジェクト | プロジェクト・インタープリター設定/設定のパスインタープリターを確認してください)。

    Path mappings verification

これでデプロイの設定が完了しました。

アプリケーションをリモートホストにデプロイする

次に、アプリケーションをリモートホストにデプロイする必要があります。

  1. ツールメニューで、デプロイ | MySFTPConnectionにアップロードするを選択します。

  2. ファイル転送ツールウィンドウが表示されます。転送されたファイルの数を確認します。

    File Transfer window

アプリケーションをデバッグする

  1. エディターの背景を右クリックし、デバッグ <名前>(ここではデバッグ 'quadratic_equation')を選択します。

  2. デバッグ出力を確認します。デバッグは実際には指定されたリモートサーバー上で行われます。

    Debugging on the remote server

Python リモートデバッグサーバー構成によるリモートデバッグ

専用の実行/デバッグ構成、つまり実行/デバッグ構成: Pythonデバッグサーバーを使用してリモートのデバッグを有効にすることもできます。

実行/デバッグ構成を作成する

  1. メインメニューから実行 | 構成の編集...を選択します。実行/デバッグ構成ダイアログが開きます。ツールバーの Add configuration をクリックし、利用可能な設定の一覧からPythonデバッグサーバーを選択する必要があります。

    Adding a Python remote debug configuration
  2. この実行/デバッグ構成の名前を入力します - MyRemoteServerとします。IDEが実行されているマシンのポート番号(ここでは12345)とIDEホスト名(ここでは172.20.208.95)を指定します。これらのパラメータは、リモートデバッグサーバーがそれにアクセスするために使用されます。

  3. ローカルマシン上のパスをリモートマシン上のパスにマップします。

    Path mapping
  4. スクリプトの更新命令をインスペクションし、次の変更を行います。

    • 次のコマンドを実行して、リモートマシンに pydevd-pycharm パッケージをインストールします。

      pip install pydevd-pycharm~=<version of PyCharm on the local machine>

      たとえば、pip install pydevd-pycharm~=191.3490)

    • 次のようにソースコードファイルを変更します。

    import math #==============this code added==================================================================: import sys sys.path.append("pydevd-pycharm.egg") import pydevd_pycharm pydevd_pycharm.settrace('172.20.208.95', port=12345, stdoutToServer=True, stderrToServer=True) #================================================================================================ class Solver: def demo(self, a, b, c): d = b ** 2 - 4 * a * c if d > 0: disc = math.sqrt(d) root1 = (-b + disc) / (2 * a) root2 = (-b - disc) / (2 * a) return root1, root2 elif d == 0: return -b / (2 * a) else: return "This equation has no roots" if __name__ == '__main__': solver = Solver() while True: a = int(input("a: ")) b = int(input("b: ")) c = int(input("c: ")) result = solver.demo(a, b, c) print(result)

SFTP接続を作成する

  1. リモートマシンで、ファイル quadratic_equation.py をアップロードするディレクトリを作成します。ターミナルウィンドウでそれを行うことができます:

    $cd /tmp $mkdir pycharm_project_986

  2. ローカルマシンで、接続プロファイルを作成します。メインメニューからツール | デプロイ - 構成...を選択します。表示されるダイアログで Add serverをクリックし、サーバーの追加ダイアログで接続タイプ(ここではSFTP)を選択し、その名前(ここではMySFTPConnection)を入力します。

  3. 接続タブで、そのマシンのSFTPホスト(リモートマシンのアドレス)、ユーザー名、およびパスワードを指定します。

    指定したユーザーは、リモートホストへのSSHアクセス権を持っている必要があります。

  4. マッピングタブをクリックして、サーバーのデプロイパスを入力します。サーバーは MySFTPConnectionなので、参照ボタンをクリックして必要なフォルダー /tmp/pycharm_project_986を選択します。ブラウズボタンにリモートホストの内容が表示されます。変更を適用してダイアログを閉じます。

リモートマシンにファイルをデプロイする

  1. 次のファイルをリモートマシンにデプロイします。pydevd-pycharm.eggquadratic_equation.py

    ローカルマシンのプロジェクトツールウィンドウでファイルを選択し、選択した場所を右クリックしてデプロイ | MySFTPConnectionにアップロードするを選択します。

  2. ファイル転送ダイアログウィンドウを調べて、ローカルマシンからのファイルがリモートサーバーにアップロードされていることを確認します。

    File Transfer window

デバッグサーバーを起動する

  1. 作成した実行/デバッグ構成を選択し、Debugをクリックします。

    Running a debug configuration
  2. デバッグツールウィンドウプロセス接続を待っています..メッセージが表示されていることを確認します。このメッセージは、リモートマシンでスクリプトを起動するまで表示され、このスクリプトはデバッグ・サーバーに接続します。

Pythonファイルをリモートマシンで実行する

  1. リモートマシンで、tmp/pycharm_project_986 ディレクトリに移動します。

  2. リモートホストで quadratic_equation.py ファイルを起動します。これを行うには、「ターミナル」ウィンドウで次のコマンドを入力します。

    $python3 quadratic_equation.py

    $python quadratic_equation.py

    このデバッグ方法の最も有用な点は、リモートデバッグがスケジュールされたタスクの一部であるとき、またはPythonスクリプトを実行する前にいくつかの準備ステップを実行する必要があるときに、bash スクリプトのいずれかを使用してPythonファイルを実行できることです。その場合、bashスクリプトの適切な場所に次の行を追加します。

    cd /tmp/pycharm_project_986 python3 quadratic_equation.py

    cd /tmp/pycharm_project_986 python quadratic_equation.py

アプリケーションをデバッグする

  • ローカルマシンで、デバッグツールウィンドウに切り替えます。pydevデバッガへの接続が表示されます。

    Remote debugging

    コードは実際にリモートホスト上で実行されますが、ローカルマシン上でデバッグされます。

要約

リモートインタープリターでデバッグするには、PyCharmを介してプログラムを開始する必要がありますが、これは常に可能とは限りません。一方、デバッグサーバーを使用する場合、実行中のプロセスに接続できます。

2つのアプローチを比較してください。

最初のケース

後者の場合

最終更新日: 2020年6月3日

関連ページ:

Python プロジェクトを作成します

純粋なPythonプロジェクトは純粋なPythonプログラミングを対象としています。プロジェクトを作成するには、次のいずれかを実行します。メインメニューから、を選択します。ようこそ画面で、新規プロジェクトの作成をクリックします。新規プロジェクトダイアログが開きます。新規プロジェクトダイアログで、プロ...

SSHを使用してインタープリターを構成する

前提条件:PyCharmはsshセッションを介してリモートインタープリターを実行するため、sshサーバーはリモートホスト上で実行する必要があります。ソースをリモートコンピューターにコピーする場合は、リモートサーバー構成を作成する項で説明したように、デプロイ設定を作成します。SSH資格情報によるリモー...

実行/デバッグ構成: Pythonデバッグ

デバッグサーバーを起動するには、リモートデバッグ構成を使用します。詳細については、リモート PyCharmによるデバッグのトピックを参照してください。名前このフィールドには、現在の実行/デバッグ構成の名前を指定します。スクリプトの更新このセクションには、リモートのデバッグの準備に必要な重要な情報が含...

プロジェクトツールウィンドウ

このツールウィンドウを使用すると、プロジェクトをさまざまな観点から見て、新しい項目(ディレクトリ、ファイル、クラスなど)の作成、エディターでのファイルの開き、目的のコードフラグメントへの移動などのタスクを実行できます。このツールウィンドウのほとんどの機能には、コンテンツペインのコンテキストメニューコ...

デバッグツールウィンドウ

このツールウィンドウは、デバッグを開始すると使用可能になります。アプリケーションのデバッグセッションによって生成された出力が表示されます。複数のアプリケーションをデバッグする場合、各アプリケーションの出力は、対応する実行/デバッグ構成の名前を付けた別のタブに表示されます。各アプリケーションには、次の...

ステップインする方法の選択

いくつかのメソッドの呼び出しで行に達したら、ステップインしたいメソッドを選択することができます。設定ダイアログのデバッガ。ステップページで抑制されているクラスのステップのメソッドを選択した場合、抑制は強制的にステップ・インコマンドを呼び出したときのようにオーバーライドされます。ステップツールバーのを...