[컴][파이썬] Visual Studio Code 에서 python debugger 이용하기

python gui debugger / python debugger / 간단한 python debugger / 괜찮은 파이썬 gui 디버거


update: 2020-05-03



update: 2017-11-15

Microsoft 가 기존의 Don Jayamanne 의 extension 에 대한 지원을 이어받아서 하기로 했다.


Visual Studio Code 에서 python debugger 사용하기

여기서는 windows 에서 사용하는 방법을 이야기 한다. ref. 3 에 따르면 아직 linux 에서virtualenv 를 사용할 수는 없다고 하는 듯 하다. windows 에서는 pythonPath 를 virtualenv 의 exe 로 설정해서 사용할 수 있다. 일단 좀 더 자세히 알아보자.


절차

  1. Visual Studio Code 설치
  2. python plugin 설치
  3. settings.json 의 pythonPath 설정
  4. File > Open Folder > python project folder 선택
  5. launch.json 수정
  6. debugger 로 실행 : F5
  7. intellisense 를 위한 추가 path 설정



python plugin 설치




settings.json 의 pythonPath 설정






python interprester 선택(update : 2017-11-15)

이 명령어를 사용하면 workspace setting 에 pythonPath에 대한 설정을 자동으로 해준다.
  • python interprester 선택: 
    • Ctrl+Shift+P  -> Python: Select Interpreter
    • 이것을 제대로 설정 해야 제대로 함수등에 대한 navigation 이 된다.




File > Open Folder > python project folder 선택

python project 의 root 을 선택하면 된다.




launch.js 설정

debug 하길 원하는 .py 를 열고 여기서 F5 를 누르자. launch.js 가 설정되어 있지 않다면, 자동으로 .vscode/launch.json 이 생성되고, 창에 보여 준다.

여기서 일반적인 console program 은 Python Console App 부분에 설정 해 주면 된다.
virtualenv 를 사용하는 경우에는 pythonPath 만 추가로 설정해 주면 된다.[ref. 3] 만약 virtualenv 인 경우 virtualenv 의 python.exe 경로를 설정 해 주면 된다.

itellisense(ctrl + space) 를 누르면 어떤 값이 가능한 지 알 수 있다.


launch.js


{
 "version": "0.2.0",
 "configurations": [
  {
   "name": "Python",
   "type": "python",
   "request": "launch",
   "stopOnEntry": true,
   "program": "${file}",
   "debugOptions": [
    "WaitOnAbnormalExit",
    "WaitOnNormalExit",
    "RedirectOutput"
   ]
  },
  {
   "name": "Python Console App",
   "type": "python",
   "request": "launch",
   "stopOnEntry": true,
   "program": "${file}",
   "externalConsole": false,
   "pythonPath": "d:/envs/eedn/Scripts/python.exe",
   "debugOptions": [
    "WaitOnAbnormalExit",
    "WaitOnNormalExit",
    "RedirectOutput"
   ]
  },
  {
   "name": "Django",
   "type": "python",
   "request": "launch",
   "stopOnEntry": true,
   "program": "${workspaceRoot}/manage.py",
   "args": [
    "runserver",
    "--noreload"
   ],
   "debugOptions": [
    "WaitOnAbnormalExit",
    "WaitOnNormalExit",
    "RedirectOutput",
    "DjangoDebugging"
   ]
  }
 ]
}



debugger 로 python program 실행

이제 다시 원하는 .py 를 열고 원하는 breakpoint 를 설정하고 F5 를 누르자. 그러면 debugger 가 실행하게 된다.



intellisense 를 위한 path 설정

intellisense (자동완성) 를 위해 추가적으로 library 에 대한 path 를 설정 해 줄 수 있다. 이부분은 settings.json 에 추가해 주면 된다. settings.json 은 command pallete(ctrl+alt+p) 에서 setting 을 쳐서
  • Preferences : Open Workspace Settings
를 실행하면 된다.

"python.autoComplete.extraPaths": [
    "C:/virtualenv/min/Lib",
    "C:/virtualenv/min/Lib/site-packages",
    "C:/Program Files (x86)/Google/google_appengine/lib" ],
"files.exclude": {
    "*/**.pyc": true
}








Django Project 설정

virtualenv 인 경우에 lauch.json 에서 pythonPath 만 추가적으로 설정해 주면 된다.

launch.json

{
 "version": "0.2.0",
 "configurations": [
  {
   "name": "Python",
   ...
   ]
  },
  {
   "name": "Python Console App",
   ...
  },
  {
   "name": "Django",
   "type": "python",
   "pythonPath": "d:/envs/mydjangoenv/Scripts/python.exe",
   "request": "launch",
   "stopOnEntry": true,
   "program": "${workspaceRoot}/manage.py",
   "args": [
    "runserver",
    "--noreload", 
    "0.0.0.0:8080"
   ],
   "debugOptions": [
    "WaitOnAbnormalExit",
    "WaitOnNormalExit",
    "RedirectOutput",
    "DjangoDebugging"
   ]
  }
 ]
}




Reference

  1. DonJayamanne/pythonVSCode, GitHub page
  2. Debugging · DonJayamanne/pythonVSCode Wiki · GitHub
  3. suggestion: choose python2 or python3 by !#/usr/bin/env python2/3 · Issue #17 · DonJayamanne/pythonVSCode · GitHub

댓글 없음:

댓글 쓰기