본문 바로가기
:: Develop/Preferences

[VSCode] Python Remote Build 설정하기

by 메모밍 2019. 9. 17.

:: INTRO

  Python을 개발할때 참 여러가지 툴을 사용하지만 일반적으로 VSCode와 Pycharm을 많이 쓴다. 여기서 일반적이란 내 주변 개발자들을 대상으로 조사한 매우 작은 표본을 일반화한 것으로 일반화의 오류가 충분한 단어 임을 미리 밝힌다. 맥북 프로를 사용하고 있어서 평소에는 그렇게 큰 불편함을 못느끼지만 GPU가 필요한 작업을 하거나 Server단이 필요한 작업을 해야할 때면 여간 난감한게 아니다. 

 

  물론 Pycharm이 Remote Build를 멋지게 지원하고 있으므로 그것을 켜서 작업하면 되지만 사실 참 무거운 녀석이기에 쉽사리 손이 가지 않는게 사실이다. 대부분의 코드작업은 VSCode를 이용해 하다보니 ( 이녀석도 여러 Extension으로 무거워질대로 무거워졌긴하지만 ) Remote Build 역시 VSCode로 하고 싶은 욕구가 컸달까.

 

  예전에 한번 VSCode를 이용해 Remote Build를 구성한 적이 있긴하다. 하지만 두개 이상의 Extension과 여러 config파일을 사용해야 했고, Sync작업이 local과 이루어져야 하는 환경을 구성했어야만 했던 기억이 있어서 좋은 경험은 아니었다. 반신반의 하면서 오랜만에 Extension을 검색했는데 .. 이게 왠걸? Microsoft에서 SSH를 이용한 Remote Build를 지원하고 있는게 아닌가.

 

 

  여기서는 SSH를 이용해 Remote로 Sync없이 바로바로 파일을 변경하면서, 동시에 Remote Build까지 완벽하게 할 수 있는 방법을 소개하려한다. 아직 많은 에러를 보지못했기에 중간에 꼬였을때 대처하는 방법을  다 알려줄 수는 없지만, 적어도 내가 되었으니 당신도 될 겁니다. 라고 말하며 시작하겠다.

 


 

1. Remote - SSH 설치 

  별말이 필요없다 Microsoft에서 내놓은 녀석을 설치해주자.

 

2. Remote 연결

F1을 눌러서 remote라고 검색한 후 Remote-SSH : Connect to Host ... 를 선택해주자.

 

 

그 후 Add New SSH Host 를 눌러주고, id@ip -p 포트번호 를 입력해주자. 우리가 평소에 ssh에 접속하는 고대로 !

 

다음에 다시 F1을 눌러서 Remote-SSH : Connect to Host를 누른다음

 

 

이번엔 Configure SSH Hosts로 들어가자.

 

그러면 방금 적었던 id 에 해당하는 ssh의 Config가 보인다. 클릭해주자 !

 

 

Host에는 ip를 , User에는 접속 id를, Port에는 포트번호를 넣어주자.

 

 

그러고 저장을 한다음 다시 F1을 눌러서 remote를 검색하고 Connect를 누르면

 

 

아까와 달리 내가 입력했던 ip 주소가 보일것이다. 눌러주자.

그러고나면 VSCode창이 새로 하나 열리면서 아래와 같이 PW를 입력하는 창이 나온다. 

 

이렇게 나오거나

 

이렇게 나온다.

 

PW를 입력하고 나면 Remote Server와 연결된 VSCode가 완성된것이다 -  _-

정말? 이라고 생각이든다면 Command + O 를 눌러서 폴더를 하나 열어보자. 내 Local Device가 아닌 Remote의 폴더들이 보일 것이다.

 

 


:: Python Interpreter Setting

이상태로 작업을해도 무리가 없다면 사용을 하면되지만, 만약 Permission Error 또는 Python interpreter Error가 발생한다면

Command + , 를 눌러 Settings를 검색해 Settings.json 파일을 열고 맨 아래에 두줄을 추가 해주자.

 

 

 

"terminal.integrated.shell.linux":"/bin/bash",
"python.pythonPath": "/usr/bin/python"

 

 

  물론 pythonPath 부분에는 자신이 구성한 Virtual env 환경이나 다른 환경 주소를 넣어주면 되겠다. 이로써 완벽하게 Remote와 연동이 되는 VSCode를 얻을 수 있다. ( 아 .. 너무 편하다 정말 )

 

 


 

:: 한 가지더

  한가지더 알려주자면, VSCode에서도 여러개의 WorkSpace를 둘 수 있다. F1을 눌러서 workspace 라고 검색을 해보면 아래와 같이 Add workspace ... 부분이 있다. 해당 부분을 누르고 여러개의 WorkSpace를 추가해주면 Path Error 따위 없는 쾌적한 Python Build를 수행 할 수 있다.

 

 

댓글1

  • 바보 2019.09.17 20:57

    https://github.com/microsoft/vscode-python/issues/944

    다음과 같이 프로젝트 폴더가 구성되어 있을때,
    - src
    | - A
    | | - main.py
    | - MODULE_A
    | | - a.py
    | - MODULE_B

    main.py 에서 from MODULE_A.a 형태로 불러오려면, source root가 src로 되어 있어야하는데, pycharm에서 말하는 source root가 정확히 무엇인지 모르겠고, 그렇다보니 이것을 vscode에서는 어떻게 정의하고 있는지 모르겠네요.

    일시적으로 해결한 방법으로는 src 폴더 아래 전역으로 PYTHONPATH를 설정하기는 부담되서 찾아보니 .env 파일을 생성하여 python interpreter에게 직접적으로 환경변수로 주는 방법으로 해결했는데요 다른 방법이 있나요?

    .env 파일 내부에는
    PYTHONPATH=${PYTHONPATH}:/pathToProject/src/MODULE_A: /pathToProject/src/MODULE_B
    형태의 문자열로 환경변수를 넣어 줬습니다.

    답글