PyCharm 2024.1 ヘルプ

リモート 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 インタープリターの対応する設定で指定されたパスを反映していることを確認してください。

    Path mappings verification

    プロジェクト | Python インタープリター設定でパスインタープリターを確認するには、プロジェクト | Python インタープリターで使用可能なインタープリターのリストを展開し、すべて表示 ... を選択して、Show an interpreter path をクリックします。選択したインタープリターの既存のパスがインタープリターのパスダイアログに表示されます。

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

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

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

  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. 次のファイルをリモートマシンにデプロイします。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 モードでファイルを編集できます。プロジェクトを作成するには、次のいずれかを実行します。に移動します。ウェルカム画面で、新しいプロジェクトをクリックします。、新しいプロジェクトダイアログで、プロジェクト名とその場所を指定します。ダイアログは、PyCharm エディシ...

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

SSH 経由でリモート Python インタープリターを構成する:PyCharm は ssh-sessions を介してリモートインタープリターを実行するため、リモートホストで SSH サーバーが実行されていることを確認してください。以下のいずれか 1 つを実行します:Python インタープリターセレクターをクリックして、新しいインタープリターを追加を選択します。を押して設定を開き、に移動します。利用可能なインタープリターのリストの横にあるインタープリターの追加リンクをクリックします。Pyt...

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

リモートデバッグ構成を使用して、デバッグサーバーを起動します。詳細については、リモート PyCharm によるデバッグを参照してください。名前このフィールドには、現在の実行 / デバッグ構成の名前を指定します。スクリプトの更新このセクションには、リモートのデバッグの準備に必要な重要な情報が含まれています。PyCharm インストールから Python パスに pydevd-pycharm.egg を追加するか、実行します。サンプル: リモート PyCharm によるデバッグの手順の説明を参照してくださ...

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

プロジェクトツールウィンドウでは、様々な視点からプロジェクトを見て、新しいアイテム(ディレクトリ、ファイル、クラスなど)の作成、エディターでのファイルのオープン、必要なコードフラグメントへの移動など、様々なタスクを実行することができます。このツールウィンドウのほとんどの機能には、コンテンツペインのコンテキストメニューコマンドとして、関連するショートカットを介してアクセスします。また、ビューには、作成されたスクラッチファイル、クエリコンソール、拡張スクリプトを管理できるスクラッチとコンソールフォル...

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

デバッガーセッションを開始すると、デバッグツールウィンドウが表示されます。このウィンドウを使用して、デバッガーセッションを制御し、プログラムデータ(フレーム、変数など)を表示および分析し、さまざまなデバッガーアクションを実行します。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一般的な手順については、ツールウィンドウを参照してください。ツールウィンドウのタブを切り替えるには、とを押します。セッションタブ、デバッガーコンソールタブ、変数と監視、フレーム、デバッガーツ

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

デバッグコンソールを使用すると、出力とエラーメッセージを表示できます。デバッグコンソールを開く:デバッグセッションを開始すると、PyCharm はデバッグコンソールを起動します。デフォルトでは、コンソールは対話型です。コード補完を使用してコマンドを実行できるプロンプトが表示されます。この動作を無効にするには、「デバッグコンソールを表示」をクリックします。デバッグコンソールで使用できるアクション:コンソールでは、次のことができます。コマンドを入力し、を押して実行します。結果は同じコンソールに