필수 규칙
1. 무조건 editor가 아닌 IDE를 사용해야한다.
pycharm을 쓸 때랑 sublimetext를 사용할 때의 생산성 차이는 압도적이다.(특히 refactor)
1. 무조건 local에서 바로 실행할 수 있어야한다.
즉시 응답하는 빠른 run이 가능해야만 손쉽게 디버깅을 할 수 있다. local run은 단순히 pytorch cpu에서 실행해도 전혀 상관이 없다.
서버에서 실행해야하는 경우도 가능하면 toy환경을 local로 가져오는 것이 좋고, 그마저도 힘들다면 sftp를 이용해서 remote의 코드를 pycharm으로 수정하도록 한다.
기계학습의 경우 데이터의 아주 일부분이라도 프로젝트에 내장시켜서 local run이 가능하게 해야한다.
1. 내가 사용하는 환경을 docker로 한번 감싼다.
그래야 다른 환경에 쉽게 옮길 수 있다. docker commit을 이용해서 현재 환경을 복사하면 되기 때문이다.
# 개발도구의 기본 개념
IDE(Integrated Development Environment)란
Text editor + compiler + debugger가 합쳐진 코딩 전용 프로그램이다.
TextEditor란
메모장의 매우 고급화된 버젼으로 볼 수 있다.
# Sublime Text 3
Text Editor의 한 종류로, 언어에 상관 없이 가볍게 코딩이 가능하다. 다양한 커스텀 기능이 구현된 패키지를 제공해주고, 설치 및 관리가 매우 용이하지만, 기능의 한계가 명확하다.
그렇지만 Sublime Text3는 여러 상황에서 가볍고 유익하게 많이 쓰인다. 가령 정규식을 테스트해본다거나, 손으로 문서를 파싱해야한다든지 할 때 편리하다.
Sublime Text 3를 IDE처럼 사용해보기
submlimet text 3는 원래 단순 text editor이지만, anaconda 같은 package들을 설치해서, 디버깅을 할 수 있게해서 IDE와 유사한 사용성을 시도해볼 수는 있다. 그러나 결국 아무리 애를 써도 IDE의 파워풀한 기능을 다 따라가는 것은 불가능하다.
Sublime Text 3 Hot key
- ctrl + `: 서브라임 텍스트 콘솔창 켜기(특정 명령어를 실행시킬 수도 있고, 어떤 작업을 하는지 그 과정을 모니터링할 수도 있음
- ctrl + shift + p: general command 창
- ctrl + p : go to anywhere
- ctrl+alt+d : documnet 보기
- ctrl + d : 같은 변수 선택하기
- ctrl+alt+f : usage 찾기
- ctrl+shift+space: 선택영역 좌우로 늘리기
- ctrl + p : go to anywhere
- ctrl+alt+d : document 보기
Sublime Text 3 에서 커스텀 단축키 만들기
- ctrl+`을 눌러서 console창을 키고, sublime.log_commands(True)을 입력하여 로깅옵션을 킨다음 특정 행동을 취해서 command_name을 알아내고, 이를 key binding에 등록한다.
Sublime Text3 에서 Github Markdown Preview 사용하기
- 그대로 따라하면됨. 주의사항은
enable_autoreload=true
로 했을 때, ".md" 파일만 markdown으로 인식되어, 저장시 자동 빌드가 된다는 점임.
그래서 다음과 같이 수정할 것 "markdown_filetypes": [".txt", ".md", ".markdown", ".mdown"],
그리고 추가로 LiveReload가 항상 enable되어있게 하려면 다음을 setting에 추가. { "enabled_plugins": [ "SimpleReloadPlugin", "SimpleRefresh" ] }
https://github.com/revolunet/sublimetext-markdown-preview
WSL(Window Subsystem Linux)와 Sublime Text 3연결하기
아래의 여러 링크들을 참조하여 조사해보았으나, 아직까지 매끄럽고 쉽게 연결할 수 있는 방법은 없는 것으로 확인된다. 게다가 pytorch gpu까지 고려하면, anaconda를 설치하는 것이 더 나은 방법으로 보인다.
- https://github.com/Microsoft/vscode-python/issues/67
- https://github.com/Microsoft/WSL/issues/2760
- https://stackoverflow.com/questions/37000166/getting-pycharm-to-recognize-python-on-the-windows-linux-subsystem-bash-on-wind
- https://devblogs.microsoft.com/commandline/share-environment-vars-between-wsl-and-windows/
- https://gist.github.com/Voronoff/059c50f9fd354386c305c55af1f3a61f#install-and-set-up-python-to-work-with-vscode-and-wsl
- https://stackoverflow.com/questions/53731023/sublimetext-integration-with-windows-subsystem-for-linux-wsl-bash
# PyCharm
역시 IDE의 압승이다. 서브라임 텍스트가 아무리 날고 기어봤자 IDE의 강력한 기능은 절대 이길 수가 없다.
단축키
setting에가면, sublime text 키맵을 사용하는 옵션이 있음. 매우 편리함
- 자동부분선택: Ctrl + Shift + A
- 자동완성 or Hint 보기: Ctrl + Space
Hint window의 크기 조절이 가능하고, 이미 완성된 함수에도 ctrl + space를 누르면 함수의 인자를 볼 수 있다 - 코드 접기/펴기 ctrl + > : 접기/펴기
- 함수 정의 살펴보기: Ctrl + Shift + I
- Active window tool 열기: Alt + 숫자
- Active window tool 닫기: Shift + ESC
화면 분할하기
import _ssl 에러 해결하기
해결 방법은 pycharm의 환경설정에 들어가서, 환경 변수에 다음 세가지 경로를 PATH variable에 추가하는 것이다.
C:\Python\Anaconda3; C:\Python\Anaconda3\Scripts; C:\Python\Anaconda3\Library\bin;
Python 3.7 anaconda environment - import _ssl DLL load fail error
특정 디렉토리를 Project file에서 exclude시키기
Remote SFTP server 환경 설정
버그 해결: Default server '~~~' is not valid: SFTP host is not specified.
Remote SSH interpreter 설정
# Windows 10의 GPU에서 돌아가는 기계학습 개발 환경 구축하기
일단 python 개발 환경의 입장에서보면 WSL만으로는 역부족이다. 가장 중요한 GPU가 아직 WSL 1에서는 사용이 불가능해서 pytorch cpu만 실행 가능하기 때문이다. 게다가 Sublime text 3나 pycharm을 IDE로써 사용하려면 python binary가 IDE와 연결되어야하는데, WSL에 깔려있는 python은 윈도우에서 접근할 수가 없다. 그래서 WSL 2에서 GPU를 지원해주기 전까진, 현재로썬 무조건 anaconda3가 필요하다.
윈도우 용 Anaconda3 설치
링크에서 다운받아 설치한다. Anaconda에는 기본으로 jupyter도 설치되어 있고, wsl과 다른 ananconda prompt가 있다. 이것을 사용하면 된다. Anaconda를 설치하고 powershell prompt를 사용하면 기본 prompt보다 더 많은 기능이 지원되고, conda가 이미 설치되어 있어 바로 사용 가능하여 매우 편리하다.
Docker 설치
Sublime text에 3-anaconda 패키지 설치하기
링크에서 다운받아 설치한다. 링크를 참조하여 ananconda가 사용할 python interpreter의 경로를 지정하고, 이를 build system에 등록한다.
그리고 sublime text의 build 옵션을 수정하여 anaconda의 python.exe를 가리키도록 한다. 링크 참조(Build System-New build system-"cmd":["C:\\ProgramData\\Anaconda3\\python.exe", "-u", "$file"] 추가하기. 그러면 해당 build 옵션은 다음 Sublime Text\\Data\\Packages\\User 경로 에 Py37Anaconda.sublime-build 이런 식으로 저장된다.)
설정이 완료되면, ctrl+B를 눌러 빌드를 할 수 있고 IDE에서 사용가능한 여러 기능들이 가능해진다.
Preferences-Package Setting-
{ "python_interpreter": "C:\\\\\\\\ProgramData\\\\\\\\Anaconda3\\\\\\\\python.exe", "auto_python_builder_enabled": true, }
- 다양한 anaconda 옵션 설정하기 링크를 참조하면 내 입맞에 맞는 다양한 옵션을 설정할 수 있다.
{ "python_interpreter": "C:\\\\ProgramData\\\\Anaconda3\\\\python.exe", "auto_python_builder_enabled": false, "hide_snippets_on_completion":true, // document "enable_docstrings_tooltip": true, "display_signatures": true, "enable_signatures_tooltip":true, "merge_signatures_and_doc":true, /* Sets the linting behaviour for anaconda: "always" - Linting works always even while you are writing (in the background) "load-save" - Linting works in file load and save only "save-only" - Linting works in file save only */ "anaconda_linting": true, "anaconda_linting_behaviour": "always", "anaconda_linter_persistent": true, "anaconda_linter_show_errors_on_save":false, "anaconda_linter_phantoms":false, // show inline error "pep8": false, "pep8_rcfile": false, "pep8_error_levels": {"E": "W", "W": "V", "V": "V"}, "pep8_ignore": [ "E309" ], "pep257": false, "pep257_ignore": [ "D203", "D209" ], /* If 'outline' (default), anaconda will outline error lines. If 'fill', anaconda will fill the lines. If 'solid_underline', anaconda will draw a solid underline below regions. If 'stippled_underline', anaconda will draw a stippled underline below regions. If 'squiggly_underline', anaconda will draw a squiggly underline below regions. If 'none', anaconda will not draw anything on error lines. */ "anaconda_linter_mark_style": "squiggly_underline", "anaconda_linter_underlines": false, // redundant with above option // If true, anaconda draws gutter marks on line with errors. "anaconda_gutter_marks": true, "anaconda_gutter_theme": "hard", // 'basic', 'alpha', 'bright', 'dark', 'hard', "retina", 'simple' }
Pycharm for anaconda 설치하기
만약 sublime이 아니라 pycharm을 원한다면, 링크에서 다운받아 설치한다.
Pytorch for anaconda 설치하기
예를 들어 pytorch cpu버전을 설치한다면 Anaconda powershell prompt을 관리자 권한으로 실행한 다음을 입력한다.
conda install pytorch-cpu torchvision-cpu -c pytorch
'A. Development > Free Topic' 카테고리의 다른 글
SSH로 서버 설정 및 Putty 접속 (0) | 2020.06.21 |
---|---|
Git LFS (Large File Storage) 사용하기 (3) | 2020.03.30 |
개발 및 배포 프로세스, 협업 프로세스 (0) | 2019.12.17 |
연구용 파이썬 에디터 찾기 : IPython, Notepad++, PyCharm, Atom, Sublime Text 3 (0) | 2016.11.29 |
Docker 사용방법 (0) | 2016.02.19 |
댓글