prlab 블로그

Pycharm pro버전으로 서버 PC 환경의 python 인터프리터 사용하여 원격 빌드하기 본문

스터디흔적/인공지능 및 기계학습

Pycharm pro버전으로 서버 PC 환경의 python 인터프리터 사용하여 원격 빌드하기

거녀엉 2019. 1. 18. 11:30

Pycharm은 대학생 또는 대학원생에게 pro 버전을 사용할 수 있는 1년 라이센스를 무료로 제공한다.


https://www.jetbrains.com/student/


위 링크에서 학교 계정 이메일을 통해 인증을 받아 라이센스를 얻을 수 있다.


라이센스 얻은 후 Pycharm pro버전을 설치하면 로그인 창이 나오는데 이때 인증받은 계정을 통해 로그인하면 pro 버전을 무료로 1년간 사용할 수 있다.


1년 후에도 다시 인증 받으면 무료로 사용할 수 있는거 같은데 1년 뒤에 생각해봐야겠다.


우선 서버 PC에 SSH를 설정해줘야한다. SSH 포트포워드 및 고정 IP 설정 방법은 이전 글에 설명했으니 참고바랍니다.


SSH 포트포워드 및 고정 IP 설정 후 서버 PC에서 다음과 같은 명령어로 SSH 서버를 설치한다.


$ sudo apt-get install openssh-server


$ sudo apt-get install ssh


여기까지 진행하면 서버PC에서 할 일은 끝났다.


Pycharm에서 프로젝트를 만든 후 메뉴 -> File ->Setting에 들어가면 아래 그림처럼 Deployment 설정을 할 수 있다.



처음 들어가면 Deployment 목록이 비어있따. '+' 를 클릭하여 새로 만든다. ( * 지금부터 ' ' 표시는 버튼을 의미합니다. )


Type : SFTP


Host : DNS name (공유기 사용시)


port : 외부포트 (공유기 사용시)


User name : 서버 PC의 이름


Password : 서버 PC 비밀번호


까지 입력 후 'Test Connection' 을 클릭하면 연결이 성공했는지 잘됐는지 확인 가능하다. 아마 이전 글과 앞에 내용에 이상이 없고 잘 따라왔으면 두 PC가 연결되는걸 볼 수 있을 것 입니다.


Root path : 는 앞에 연결이 잘 된 경우 'Autodetect' 로 자동으로 입력이 가능하다.


Web server URL : 은 빈칸으로 둬도 상관없다.


이제 서버와의 연결은 끝났다. 서버 PC의 파이썬 인터프리터를 가져와 쓸 일만 남은 것이다.




Project란에 Project Interpreter 를 클릭하면 위 그림과 같은 창이 뜬다. 우측 상단에 작은 '톱니바퀴' 모양의 버튼을 클릭한 후 'add'를 클릭한다.





SSH Interpreter 에서 Existing sever configuration 클릭하면 위에서 deployment 잡아뒀던 목록명이 뜬다. 그걸 클릭하면 아래 'create' copy~~가 뜬다. 'create'를 클릭한다. 그리고 Copy of project-level server [deployment명] 바로 오른쪽 '...'버튼을 클릭해서 아래 그림처럼 mapping을 바꿔줘야 한다.



Deployment 는 한글로 전개라는 뜻이다. 현재 PC의 로컬 환경을 서버 PC의 전개한다는 뜻이다. 즉 Local path : 의 파일들을 Deployment path : 에 업로드한다. 


중요한건 앞에서 Deployment 잡아줄때 Root path가 /home/prlab 이였으므로 /home/prlab/kunyoung 이 Deployment path의 절대경로라는 점이다.


Deployment를 통해 업로드된 .py 파일은 심지어 GPU 연산이 필요한 코드일지라도 서버 PC의 환경에서 실행되는 것이다. Web path : 역시 채울 필요없다. 하지만 여기서 Deployment path : 를 설정할 필요가 없다. 'OK' 누르고 'Next' 눌러서 다음단계로 넘어가자



Deployment path : 는 위 창의 Sync folders : 에서 설정합니다. 저의 경우는 '/home/prlab/kunyoung' 경로로 설정했습니다. 편한 경로 아무데나 잡아주면 될것같습니다.


이 단계에서 제일 중요한건 바로 상단의 Interpreter : 란 입니다. 여기서 가상환경의 python 인터프리터를 쓸지 로컬 환경의 python 인터프리터를 쓸지 나뉩니다. /usr/bin/python 은 서버 PC의 Ubuntu 로컬 환경의 파이썬 인터프리터입니다.


아나콘다 가상환경의 인터프리터를 사용할 경우 '/home/prlab/anaconda3/envs/keras2.2.4/bin/python' 와 같이 반드시 가상환경의 python 인터프리터를 경로로 잡아줘야합니다!!!


'/home/prlab/anaconda3/'는 이전 글에서도 보시다시피 아나콘다 설치시 기본 경로입니다. 처음 하시는 분들은 잘 찾아서 경로 지정해주시면 될 것 같습니다.


'Finish'를 눌러 설정이 끝나면 아래 그림처럼 서버 PC의 Remote python과 설치된 package 및 버전을 원격 PC에서 확인할 수 있습니다.


두 컴퓨터가 연결이 잘 되어있다는 뜻입니다. OK 후 마지막 단계로 넘어갑니다.




마지막으로는 원격 접속 PC의 pycharm에서 서버 PC의 cudnn 라이브러리를 환경변수로 잡아줘야합니다. 생각보다 쉽습니다.




우측 상단의 재생버튼 옆 목록창 클릭후 'Edit Configurations' 클릭하면 환경변수 세팅하는 창이 뜹니다.




LD_LIBRARY_PATH 환경 변수를 추가해야함으로 Environment variables 목록을 클릭하면 아래처럼 환경변수 추가가 가능합니다.


LD_LIBRARY_PATH 의 Value를 '/home/prlab/anaconda3/envs/keras2.2.4/lib' 경로처럼 자신의 아나콘다 가상환경의 경로의 lib 폴더를 지정합니다. 사용하려고자 하는 파이썬 인터프리터가 서버PC의 로컬 환경에 설치된 경우 경로는 아마 '/usr/CUDA/lib64'일 겁니다.



이로썬 서버PC의 파이썬 인터프리터를 불러오는게 끝났습니다.



위 그림처럼 업로드하면 서버 PC에 파일이 올라가고 실행하면 서버 PC의 GPU 등 컴퓨터 자원을 사용하여 원격으로 빌드하여 코드를 돌려볼 수 있습니다!


메뉴 -> tools -> Deployment -> automatic upload 를 체크하면 업로드가 자동으로 되어 편합니다.


다음 글은 Ubuntu 서버에서 FTP 설정한 후 Filzila를 설치하여 학습데이터 및 대용량 데이터 전송에 대한 내용을 다루겠습니다. 




0 Comments
댓글쓰기 폼