PyCharm 2019.2ヘルプ

リモート 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)

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

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

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

  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)とローカル・ホスト名(ここでは172.20.208.95)を指定します。これらのパラメータは、リモートデバッグサーバーがそれにアクセスするために使用されます。

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

    Path mapping

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

    • pydevd-pycharm.egg をプロジェクトルートにコピーします。このアーカイブは、PyCharmインストールの debug-eggs ディレクトリーにあります。デフォルトのインストールディレクトリーの詳細については、PyCharmをインストールするを参照してください。Toolboxを使用してPyCharmをインストールした場合、PyCharmディレクトリーはWindowsの場合は C:\Users\<user_name>\AppData\Local\JetBrains\Toolbox\PyCharm\*、Macの場合は /Users/<user_name>/Library/Application Support/JetBrains/Toolbox/apps/PyCharm/* にあります。

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

    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を選択します。ブラウズボタンにリモートホストの内容が表示されます。変更を適用してダイアログを閉じます。

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

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

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

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

    File Transfer window

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

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

    Running a debug configuration

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

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

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

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

Python 3の場合

$python3 quadratic_equation.py

Python 2の場合

$python quadratic_equation.py

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

Python 3の場合

cd /tmp/pycharm_project_986 python3 quadratic_equation.py

Python 2の場合

cd /tmp/pycharm_project_986 python quadratic_equation.py

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

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

    Remote debugging

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

要約

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

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

最初のケース

後者の場合

最終更新日: 2019年10月14日

関連ページ:

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

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

SSHを使ってリモートインタープリターを設定する

この機能は、Professionalエディションでのみサポートされています。このエディションは有償であり、優れた機能セットを提供します。詳細については、比較マトリックスを参照してください。前提条件:PyCharmはsshセッションを介してリモートインタープリターを実行するため、sshサーバーはリモー...

実行/デバッグ構成: Python リモート・デバッグ

この機能は、Professionalエディションでのみサポートされています。このエディションは有償であり、優れた機能セットを提供します。詳細については、比較マトリックスを参照してください。デバッグサーバーを起動するには、リモートデバッグ設定を使用します。詳細については、リモート PyCharmによる...

PyCharmをインストールする

PyCharmは、Windows、macOS、およびLinuxオペレーティングシステムで一貫したエクスペリエンスを提供するクロスプラットフォームIDEです。PyCharmはデフォルトでは英語です。日本語化したい場合は、インストール後、初めて起動する前に日本語化マニュアルを参照してください。PyCha...

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

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

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

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