본문 바로가기

Tech

AWS Cloud9 IDE의 python venv 환경에서 디버깅(debugging)하는 방법

안녕하세요. 카이랏입니다.

 

이번에는 지난 번의 내용과 이어지는 내용입니다.

우리가 최신 버전의 python을 사용할 경우에 venv로 가상 환경을 꾸미고 개발을 하는 경우가 있습니다.

 

따라서 이에 대한 내용을 한 번 알아보고자 합니다.

 

1. 새로운 러너(runner) 만들기

먼저 기존에 AWS에서 제공하는 러너가 아닌 새로운 러너를 만들어야 합니다.

[Run] - [Run With] - [New Runner] 로 들어가서 새로운 러너를 만듭니다. 그러면 자동으로 My Runner 라는 파일이 생기는 것을 알 수 있습니다. 이 내용을 일단 먼저 저장합니다. 그 후 [Run] - [Run With] - [My Runner] 항목을 클릭해서 해당 파일을 실행시키고 나서 바로 멈춥니다. 그렇지 않으면 My Runner에 내용이 아직 없기에 에러가 발생합니다.

 

2. Runner 편집

이 후 Runner를 편집하도록 합니다. 이 때 My Runner 에 venv 로 만든 가상 환경으로 코드를 실행하는 기능을 구현할 것입니다. 붉은색 상자 안의 "Edit Runner"를 클릭합니다.

이 후 아래와 같은 내용으로 편집을 진행합니다.

// This file overrides the built-in Python 3 runner
// For more information see http://docs.aws.amazon.com/console/cloud9/change-runner
{
  "script": [
    "if [ \"$debug\" == true ]; then ",
    "    /home/ubuntu/environment/myenv/bin/python -m ikp3db -ik_p=15471 -ik_cwd=$project_path \"$file\" $args",
    "else",
    "   /home/ubuntu/environment/myenv/bin/python \"$file\" $args",
    "fi",
    "checkExitCode() {",
    "    if [ $1 ] && [ \"$debug\" == true ]; then ",
    "        /home/ubuntu/environment/myenv/bin/python -m ikp3db 2>&1 | grep -q 'No module' && echo '",
    "    To use python debugger install ikpdb by running: ",
    "        sudo yum update;",
    "        sudo yum install python36-devel;",
    "        sudo source /home/ubuntu/environment/myenv/bin activate",
    "        sudo pip-3.6 install ikp3db;",
    "        sudo deactivate",
    "        '",
    "    fi",
    "   return $1",
    "}",
    "checkExitCode $?"
  ],
  "python_version": "/home/ubuntu/environment/myenv/bin/python",
  "working_dir": "$project_path",
  "debugport": 15471,
  "$debugDefaultState": false,
  "debugger": "ikpdb",
  "selector": "^.*\\.(py)$",
  "env": {
    "PYTHONPATH": "$python_path"
  },
  "trackId": "/home/ubuntu/environment/myenv/bin/python"
}

여기서 중요한 내용은 "/home/ubuntu/environment/myenv/bin/python" 이 항목입니다. 이것이 현재 저에게 설정된 venv 가상 환경 안에서의 python 실행 명령입니다. 따라서 이 경로를 잘 작성하시면 됩니다. 이 내용을 My Runner에 저장하고 실행하면됩니다.

 

3. 실행이 되지 않을 경우

이렇게 모든 것을 했음에도 불구하고 디버거가 잘 작동하지 않을 경우라면 AWS Cloud9 환경을 reboot 하면 됩니다. 아래의 내용으로 리부팅을 시도하면 작동할 것입니다.

sudo reboot

 

여기까지 가상 환경으로 debugging 하는 방법에 대해서 이야기하였습니다.