12
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCodeでリモートデバッグできる環境を整える

Last updated at Posted at 2019-05-17

注意 (2020.04.14追記): この記事の内容はすでに古いものとなっています.
現在はより簡単にリモートでバッグを設定できるようになっているのでこちらをご覧ください.

以下の方法を用いてubuntuでは構築することは出来ましたが,windowsでは環境構築出来ませんでした.(pathの大文字小文字が勝手に変換されてしまう問題を解決出来なかったため)

リモートデバッグとは

ローカル環境からサーバ上などのリモートの環境で動くコードのデバッグを行うこと

使ったツール

SSH FS
ptvsd

手順

1. インストール

SSH FS
VSCodeのExtensionからSSH FSを検索してインストール

ptvsd
リモートのローカルの両方にpip install ptvsdptvsdをインストール

2. 環境の設定

Pythonコードの編集
main文の文頭に以下を追記する.実行の際にdebugを引数とすることで,ptvsdを用いたデバッグモードに移るようになる.

if __name__ == '__main__':
    import sys
    if (len(sys.argv) > 1) and (sys.argv[1] == "debug"):
        import ptvsd
        print("waiting...")
        ptvsd.enable_attach(address=('0.0.0.0', 5678))
        ptvsd.wait_for_attach()

SSH FSの設定
Visual Studio CodeでSSHごしにファイルを編集する」を参考に設定してください.

VSCodeのデバッガの設定
launch.jsonに以下の記述を追加する.

launch.json
        {
            "name": "Python: Remote Attach",
            "type": "python",
            "request": "attach",
            "port": 5678,
            "host": "0.0.0.0",
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "."
                }
            ]
        },

3. 実行方法

  1. サーバー上でpython example.py debugとうち,リモートデバッグの待機状態にする.waiting...と表示される.
  2. VSCodeからPython: Remote Attachのdebuggerを選択する.
  3. 適宜ブレイクポイントを設定する.
  4. debugの実行.

詰まったところ

問題

sshポートフォワーディングの設定をしていなかったため,諸設定を行ってもVSCodeとサーバーの環境の接続が確立されていませんでした.

対処

=> ssh -L 5678:localhost:5678 USER@192.168.1.XXUSER@192.168.1.XXにログインすることで,localの5678にアクセスするとremoteからアクセスできるlocalhost:5678に繋げるように設定する.USER@192.168.1.XX5678は適宜設定しても問題ありません.

参考

sshポートフォワーディング - Qiita
Visual Studio CodeでSSHごしにファイルを編集する - Qiita
VSCodeでPythonのリモートデバッグ - Qiita

12
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?