PyCharm 2020.3 ヘルプ

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

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

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

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

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

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

  • Python リモートデバッグサーバー構成の使用

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

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

始める前に

次の準備作業を完了する

  1. ローカルマシン上で、セクション Python プロジェクトを作成するに従って、純粋な 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)

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

この例では、アプリケーションを実行するマシンは local として参照され、リモートインタープリターを備えたマシンはリモートとして参照されます。

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

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

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

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

    Deployment configuration

  4. 必要に応じて、すべてのデフォルト設定を受け入れるか、変更できます。この例では、" MySFTPConnection" など、デプロイ構成にわかりやすい名前を使用します。

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

    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. スクリプトの更新命令をインスペクションします。PyCharm インストール(<PyCharm directory>/debug-egg/pydevd-pycharm.egg)から pydevd-pycharm.egg を使用するか、pip を使用して pydevd-pycharm パッケージをインストールできます。

    選択に応じて、次の変更を実行します。

    • 次のコマンドを実行して、リモートマシンに 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 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)

    次のようにコードを変更します。

    import math #==============this code added==================================================================: import sys sys.path.append("<PyCharm directory>/debug-egg/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. Deploy the following files to the remote machine: 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 つのアプローチを比較してください。

最初のケース

後者の場合

関連ページ:

Python プロジェクトを作成する

純粋な Pythonプロジェクトは、Python プログラミングを対象としています。プロジェクトは、ソースコード、テスト、使用するライブラリ、個人設定を 1 つのユニットに整理できます。プロジェクトが必要ない場合は、LightEdit モードでファイルを編集できます。プロジェクトを作成するには、次の...

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

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

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

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

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

プロジェクトツールウィンドウでは、様々な視点からプロジェクトを見て、新しいアイテム(ディレクトリ、ファイル、クラスなど)の作成、エディターでのファイルのオープン、必要なコードフラグメントへのナビゲートなど、様々なタスクを実行することができます。このツールウィンドウのほとんどの機能には、コンテンツペイ...

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

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

デバッグコンソールの使用

デバッグコンソールを使用すると、出力およびエラーメッセージを表示できます。必要に応じて、コマンドプロンプトを使用可能にすることができますデバッグコンソールを開く :デバッグセッションを開始すると、PyCharm はデバッグコンソールを起動します。コンソールはインタラクティブです: プロンプトが表示さ...