서버에 있는 python 코딩을 IPython으로만하다가 한계를 느끼고 PyCharm을 도입하기로 했다. 우선 IPython을 사용해서 웹으로만 하면, 스크립트 코딩시 찾기 기능이 잘 안되고, 한번에 이름을 못바꾸고, 탭키 사용이 제한적인 등 많은 불편함이 있다. Notepad++의 경우 직관적이고 쉬운 사용법이 강점이지만 체계적인 프로젝트 관리와 ssh를 직접실행할 수 없는 단점이 있다. 이에 PyCharm의 경우 제대로 설정만 한 번 해놓으면 거의 모든 작업을 다 할수가 있다.


1) PyCharm 유료/무료 : 

유료버젼의 경우 가격이 1년에 90달러로 상당히 비싸다. 그리고 유료(Professional)버전을 사용해야만 원격 서버에 있는 파이썬 코딩을 할 수 있기 때문에 반드시 필요하다. 

https://www.jetbrains.com/pycharm/buy/#edition=discounts

하지만 위의 링크에 들어가보면 학생들은 무료로 사용할수가 있다!(학교 메일로 인증을 해야함)
그래서 회원가입을 먼저한다음, 학생메일 인증을 하고, 유료 버전을 다운받아 설치한 뒤 계정을 입력해서 인증을 한다.


2) Keymap 및 theme 세팅 :

처음 실행하면 어떤 방식의 IDE로 설정할지 물어보는데, 우선 가장 기본 세팅을 사용한다. (추후 변경가능)


3) Remote 서버와 연결
그다음 프로젝트의 이름을 정해서 새로 생성하고 나서,  다음을 따라서 원격 서버와 프로젝트를 연결한다.

https://www.jetbrains.com/help/pycharm/2016.3/configuring-remote-interpreters-via-ssh.html

(굉장히 document가 잘되어있다.. 유료 IDE의 강력함인듯)


4) Deployment 설정

동기화할 원격서버의 디렉토리와 나의 로컬디렉토리를 설정함

http://blog.ghatdev.xyz/11


5) 기존에 서버에서 하던 python파일들 가져오기(Download from server)

Tools -> Deployment -> Browse Remote Host

우측에 생성되는 Remote Host창에서 원하는 폴더를 우클릭해서 Download from here 을 클릭해서 내 local로 가져옴.


6) Run configuration 설정(Cuda를 사용하기위한 환경변수)

Run -> Edit configurations -> Environment variables에 녹색 + 버튼을 눌러서 다음 문장을 추가해준다.


LD_LIBRARY_PATH          /usr/local/cuda/lib64

(위 경로에 띄어쓰기가 포함되지 않도록 주의..)


그리고나서 ctrl + shift + F10을 클릭해서 실행해보면, 원격서버에서 잘 실행되는 것을 알 수 있다.


----------------------------

#사용 후기
PyCharm은 거대한 웹 서버를 제작하는 규모 있는 프로젝트 관리에 적합한 것 같다. 생각보다 너무 기능이 많고 무거우며, 연구용으로 단순히 몇개의 python파일을 수정하는 수준에는 불편한 점이 너무 많다.


그래서 Atom을 써보기로 한다. 그런데 Atom은 웹기반의 브라우저를 개량해서 만든것이라, 저사양 컴퓨터에서는 써보니까 좀 무거운 느낌이 많이 든다... 그래서 다시 Sublime을 시도해본다.


https://docs.google.com/spreadsheets/d/1l3x94P55qoxqYbq5GosWQ7IonZ4vR-4ZyCaImiVmCSk/pubhtml#


# Sublime Text 3
Portable 버전을 설치하면, dropbox등을 이용해서 개발환경을 쉽게 유지할 수 있다. 용량도 작아서 좋음. 현재 SFTP 30달러에 구매해서 아주 잘 사용하는 중.


- SFTP로 새로운 프로젝트 sublime text에 동기화시키기: http://recoveryman.tistory.com/166
1) FIle - Open Folder로 새로운 프로젝트를 넣을 폴더를 선택해서 열기.(없으면 새로 만들기)
2) 폴더이름 우클릭 - SFTP/FTP - Remote Mapping을 클릭하여, sftp-config.json파일을 다음과 같이 수정

{
    // The tab key will cycle through the settings when first created
    // Visit http://wbond.net/sublime_packages/sftp/settings for help

    // sftp, ftp or ftps
    "type": "sftp",

    "save_before_upload": true,
    "upload_on_save": true,
    "sync_down_on_open": false,
    "sync_skip_deletes": false,
    "sync_same_age": true,
    "confirm_downloads": false,
    "confirm_sync": false,
    "confirm_overwrite_newer": false,

    // your server
    "host": "147.46.***.***",
    "user": "root",
    "password": "****",

    //"port": "22",

    // project Path
    "remote_path": "/home/*****",
    // Custom options for ignoring directories
    "ignore_regexes": [
        "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json",
        "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", "\\.pyc",
        "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini"
        , "/checkpoints/" , "/state_sample/"
    ],
    //"file_permissions": "664",
    //"dir_permissions": "775",
    //"extra_list_connections": 0,

    "connect_timeout": 30,
    //"keepalive": 120,
    //"ftp_passive_mode": true,
    //"ftp_obey_passive_host": false,
    //"ssh_key_file": "~/.ssh/id_rsa",
    //"sftp_flags": ["-F", "/path/to/ssh_config"],    

    //"preserve_modification_times": false,
    //"remote_time_offset_in_hours": 0,
    //"remote_encoding": "utf-8",
    //"remote_locale": "C",
    //"allow_config_upload": false,
}


3) 폴더이름 우클릭 - SFTP/FTP - Sync Remote -> Local 




- sftp에서 원하지 않는 동기화 폴더 지정하기 : ignore_regexes를 사용하면 된다. 

다음을 추가해주기만 하면 됨.

 "/폴더_이름/" 
http://blog.readiz.com/46

http://stackoverflow.com/questions/11139288/ignore-regex-for-folder-and-subfolders-in-sublime-text-2-sublime-ftp-plugin


# 동기화하지 않을 확장자 추가
"\\.out"


# Tip
1. sublime text3에서 파일을 선택하면, 자동으로 sftp를 통해 서버에서 최신 버전의 파일로 동기화 시켜줌.
2. ctrl + shift + 위아래 : 한줄의 코드의 위치를 위아래로 옮길 수 있음
3. ctrl + alt + 위아래 : 세로 방향으로 블록을 지정하는 selection을 할 수 있음. esc누르면 해제 
   --> 또한 마우스 휠키를 눌르서도 세로 블록 지정이 가능함

4. 여러개의 folder open하기: 폴더를 드래그해서 왼쪽 sidebar에 올려놓거나, 또는 Project > Add Folder to Project 클릭

5. 찾기에서 검색한 단어 한번에 블록지정하기: alt+enter

6. 좌우 스크롤: shift + 휠스크롤

7. 열린 파일간 이동: 우클릭 + 휠스크롤

8. 전체 파일에서 검색/바꾸기: ctrl+shift+F
    여기서 검색/바꾸기 할 대상 폴더를 추가할 수도 있고, 제외 시킬 수도 있음


# Indentation을 space로 고정하기


https://forum.sublimetext.com/t/sublime-text-3-uses-tabs-instead-of-spaces-for-indentation/14427/10





by 곽동현 이스텔리앙 2016. 11. 29. 20:51