[파이썬] winpdb 원격 디버거 사용하기 Develop Tip

지난번 PUDB 콘솔용 파이썬 디버거를 살펴본 적이 있습니다.

필요에 따라 원격 디버깅이 필요한 경우가 있습니다.
즉 한 시스템에서 프로그램을 기동시켜 돌려보면서,
다른 시스템에서 원격으로 디버깅을 하는 것이지요.
물론 원격 디버거에서 웬만한 IDE 처럼 디버깅 GUI를 제공하면 좋지요.

이럴 때 사용할 수 있는 것이 winpdb 라는 것이 있습니다.

우분투 혹은 리눅스 시스템에 파이썬 코드가 수행되고,
그 디버깅을 원격으로 윈도우 7에서 한다고 가정합니다.

우선 동일한 버전 (1.4.8)의 winpdb 가 설치되어야 합니다.

우선 우분투/데비안 계열은 

$ sudo apt-get install winpdb
로 쉽게 설치 가능합니다.

또한 맥의 OS X 에서는 
$ sudo port install py-winpdb
로 macport로 설치가능합니다. (이 경우 실행파일은 winpdb-2.7 입니다)

다음은 윈도우7 64bit에서 해당 프로그램을 설치하는 방법입니다.

우선 winpdb는 wxPython 이라는 wxWindow wrapping 라이브러리 환경입니다.
윈도우와 리눅스의 X윈도우를 모두 포함한 윈도우 API 제공하기 위하여 만들어진  라이브러리입니다.

자, 다음과 같이 따라하시면 됩니다.

우선 파이썬 2.7을 설치하기 위하여, 위와 같이 합니다.

표준 방법으로 파이썬2.7을 설치합니다.

디폴트 위치에 설치합니다.

디폴트 설치를 합니다.

설치가 다 되었습니다.

이제, wxPython 에 들어가서,

64비트용 파이썬2.7 유니코드용을 다운받아,

설치를 시작합니다.

디폴트로 설치를 진행합니다.

파이썬 설치 위치를 확인하고 '다음',

디폴트로 다음,

속도 향상을 위하여 처음에 모든 소스 .py 파일을 .pyc 파일로 컴파일을 해 놓습니다.

이제는 위와 같이 wxPython 환경도 갖추었으므로 winpdb를 다운로드 받습니다.

구글 코딩에 호스팅 되어 있습니다.

다운 받아 압축 해제 시키면 위와 같습니다.

파이썬을 아무 패스에서도 실행시키려고 위와 같이 PATH 환경변수에 추가 하였습니다.

명령창으로 winpdb를 해제한 곳에 가서 
> python setup.py build
명령을 수행합니다.

마찬가지로 이번에는,
> python setup.py install
을 수행합니다.

자~ 이렇게 하여 설치는 모두 끝났습니다.


리눅스에서 파이썬 스크립트를 돌리고 윈도우에서 원격 디버깅을 하기 위하여

우선,

위와 같이 우분투에서
$ rpdb2 -dr script.py
와 같이 특정 파이썬 스크립트를 수행시킵니다.

그러면 연결을 위한 암호를 입력합니다.

이제 윈도우 명령창에서는 

> winpdb -ohost -a script.py

와 같이 명령을 수행합니다.
host 는 연결할 위에서의 rpdb2 를 수행한 호스트의 ip 혹은 호스트명이며,
-a 다음의 파이썬 스크립트는 rpdb2에서 수행한 파이썬 스크립트 이름입니다.
(스크립트 이름만 동일하면 되고, 원격에 별도로 복사할 필요는 없습니다)

그리고 암호를 물어보는데, 이 역시 rpdb2를 수행하였을 당시 입력한 암호를 지정합니다.

약 수초 이상 대기한 다음, 위와 같이 스크립트 소스의 라인번호 오른편을 눌러 브레이크포인트를 추가하거나 삭제할 수 있습니다.

그 다음부터는 pyDev나 pyCharm 등과 같은 IDE와 거의 동일하게 디버깅이 가능합니다.
(위와 같이 단축키를 확인하시면 됩니다)

또한 오른편 하단에 인터프리터 창이 있는데,
exec 명령을 주고 필요한 파이썬 명령을 실행할 수 있습니다.


어느분께는 도움이 되셨기를...

핑백

덧글

  • 청재 2016/01/26 11:35 # 삭제 답글

    잘보고 갑니다. PyCharm 실패하고 위 내용대로 하다가 리눅스에 막혔지만 윈도우꺼 그대로 쓰니깐 되네요.ㅋ퍼갑니다!
  • 지훈현서아빠 2016/01/26 13:08 #

    도움이 되셨다니 저의 보람입니다. ^^
댓글 입력 영역

구글애드텍스트