Pycharm은 Python IDE  중 상당한 유저를 보유하고 있는 IDE이다.

본인도 메인 PC를 윈도로 사용하면서 tensorflow를 공부할때 코드를 서버에서 실행시키고 있다. (윈도에서 tensorflow가 GPU를 지원하지 않기 때문...) 

매번 sftp같은 프로토콜로 업로드하고, 올리고, ssh로 커맨드를 입력하기는 까다로운 면이 있다. 

하지만 Pycharm pro버전에는 이를 도와주는 강력한 기능이 있다. 그것이 바로 Remote Interpreter 기능이다.

 


Pycharm에서 프로젝트를 생성할 때 이와 같은 화면을 볼 수 있다. 특히 윈도우를 사용하시는 분들은 프로젝트 이름만 변경하고 바로 Create버튼을 누르셨을 확률이 높다. 

Location 밑의 Interpreter라고 적힌 부분의 오른쪽 톱니모양의 설정버튼을 누른 후, 그 중 Add Remote 버튼을 눌러보자.



나타난 창에서 SSH Credentials 를 누르면 SSH를 설정하는 창이 나온다.

내용을 입력해 준 후 OK 버튼을 누르면 인터프리터가 목록에 추가된다.

이 후 Create 버튼을 눌러 프로젝트를 만들어 보자.


만들어지면 아래처럼 익숙한 화면이 보일것이다. 


여기서 우리는 Deployment 를 추가로 설정해 줄 것이다. (이 과정이 없으면 sftp로 일일히 업로드해야한다)

메뉴에서 Tools -> Deployment -> Configuration에 들어가 보자.

왼쪽 위의 초록색 + 버튼을 누르면 ftp, sftp 등을 추가할 수 있는 창이 나온다.



Name은 자신이 식별하기 편한 이름으로 해 주고, Type은 본인이 선호하는 프로토콜을 선택하면 된다. 

참고로 SSH만  설정해 놓으신 분들은 SFTP를 선택하면 서버에 따로 서비스를 설정할 필요 없이 연결이 된다.


이후 등장한 창에서 역시 필요한 내용들을 채워주면 된다.

더욱 중요한 것은 두번째 Mappings 탭에서 Deployment path on server 항목을 설정해 주는것이다. (밑에 사진의 가운데 입력창)



오른쪽 ...버튼을 누르면 서버 디렉터리를 탐색할 수 있다. 이 중 원하는 폴더를 선택하면 된다. 

다 설정했다면 OK버튼을 눌러 프로젝트 창으로 돌아가 보자.

추가적으로 Tools -> Deployment -> Options 에서 Upload changed files automatically to the default server 를 Always로 설정해 두면 자동을 업로드까지 해 준다.


이까지 설정을 했다면 일반적인 파이썬 코드는 문제없이 동작할 것이다. (로컬 컴퓨터의 프로젝트와 동일하게 Run을 할 수 있다.)



하지만 CUDA를 사용하려고 하면 라이브러리를 찾지 못하는 문제가 발생할 수 있다. 

이는 Pycharm이 .bashrc 파일을 적용시키지 않아서 발생하는 문제이다.

이를 위해 한가지 옵션을 더 설정해 주어야 한다. 


메뉴에서 Run -> Edit Configuration에 들어가면 Environment 에 Environment variables 라는 설정이 있다.

...버튼을 눌러 설정창에 들어간 후 Name에 LD_LIBRARY_PATH, Value에 cuda경로/lib64를 입력해 주면 된다.



이 설정까지 마치고 나면 문제없이 파이썬 코드를 원격에서 Run 할 수 있다.

당연히 AWS의 GPU 인스턴스에도 똑같이 적용할 수 있으므로 조금 더 편하게 코딩할 수 있기를 바란다.




부족한 글 읽어주셔서 감사합니다^^

오타, 오류, 질문등을 발견하시면 댓글 남겨주시면 감사하겠습니다 ㅎㅎ


'AI' 카테고리의 다른 글

Pycharm 원격 빌드 설정하기  (8) 2016.07.25
딥러닝과 행렬  (4) 2016.06.26
Windows 10 build 14332 에 TensorFlow 설치하기  (12) 2016.05.09
  1. 장현진 2016.07.27 11:21

    EC2를 스팟 인스턴스로 사용하다보니, 원격지 IP가 계속 변경되는데, 이럴 때 수정할 수 있는 방법이 있으면 알려주실 수 있을까요??

    • ghatdev 2016.07.27 16:45 신고

      인터프리터 설정에서 기존 인터프리터를 편집하시면 가능하십니다. 혹시 도메인을 가지고 계시다면 ddns를 이용해보세요 ㅎㅎ

  2. astriker 2016.08.22 08:10

    글 잘봤습니다.
    궁금한게 한가지 있는데, pycharm으로 tensorflow 코드 작성시 intelligence기능으로 인한 import관련 오류가 안나는지 궁금합니다. code실행은 서버에서 하더라도 local 소스파일 작성할때 import 오류 강조가 나타날 것 같아서 질문드립니다. windows 10 bash위에서 tensorflow를 깔고 pycharm으로 코드 작성시 import오류가 안보이는 지 궁금합니다.

    • ghatdev 2016.08.28 11:51 신고

      답글이 늦었네요ㅠ 죄송합니다
      파이참에서는 원격 인터프리터라는 기능을 지원해 import 구문에 오류가 나지 않습니다. intelligence 기능도 모두 동작하구요. 윈도우 배시에 같은방법으로 사용하셔도 오류는 없을것 같습니다

  3. Kwak Ji Won 2016.11.25 18:54

    안녕하세요 Tensorflow 사용자입니다.
    좋은 글 감사드립니다.
    그런데 그러자면 서버에 Tensorflow 와 Python 이 설치되어 있어야 합니까?
    피드백 부탁드립니다.

  4. 파이참 사용자 2017.01.20 13:55

    좋은글 감사합니다.
    원격 서버에서 정상적으로 잘 동작합니다. ^^

  5. jinho 2017.11.24 17:21

    도움 많이 되었습니다.

    좋은 글 정말 감사합니다.

+ Recent posts