지난번 포스팅에서는 Python IDE 인 Anaconda 설치 방법을 알아보았습니다.
Anaconda를 설치하면 약 450여 개의 Packages 들과 함께 Spyder, Jupyter Notebook, IPython 등이 자동으로 설치됩니다.
저는 분석 프로그래밍 할 때 수십, 수 백, 수천 줄 코딩해야할 경우가 많으므로 Spyder 편집기를 주로 사용합니다. 그리고 간단한 탐색적 분석할 때 Jupyter Notebook (R, spark 사용 할 때 포함) 을 가끔 사용하구요.
처음 Spyder를 사용하는 분이라면 좀 생소할 것이므로 좀더 빨리 사용법을 익힐 수 있도록, 이번 포스팅에서는 제가 유용하게 사용하고 있는 기능 위주로 몇 가지만 추려서 소개하도록 하겠습니다.
1. Spyder 시작
Windows 시작 단추를 누르면 'Anaconda3 (64-bit)' 폴더 아래에 'Spyder' 아이콘을 클릭하면 Spyder 가 시작합니다.
혹은 conda 명령 프롬프트 창에서
$ activate base $ (base) spyder |
처럼 spyder 를 입력해주면 됩니다.
Mac 의 경우 명령 프롬프트 창에서 source activate [virtual_envoronment_name] 해주면 됩니다.
$ conda info -e
$ source activate base
$ (base) spyder
2. Spyder 창 구성 (windows layout)
아래 화면캡쳐한 Spyder 창의 왼쪽은 (1) script Editor 입니다.
오른쪽 상단에는 (2) Variable Explorer, File Exployer, Help tab 이 차례대로 있습니다.
오른쪽 하단에는 (3) Python console, History log, Ipython console 이 차례대로 있습니다.
저는 아래처럼 그냥 Spyder default layout 을 그대로 사용합니다만, 마우스로 특정 창을 drag 해서 원하는 위치에 이동시킬 수 있습니다. 대형 모니터를 사용하는 분이라면 창을 개인취향에 맞게 이리저리 옮기고 크기도 조절해서 사용하시면 됩니다.
(1) Editor 창에서 작성한 script는 F9나 ctl+Enter 등을 사용해 명시적으로 실행을 시켜야만 실행이 됩니다. 길게 프로그매링 해야 하고 저장해 두었다가 반복적으로 사용해야 하는 상황이라면 Editor 창에서 script를 작성하고 파일로 저장을 해두어야 겠지요.
반면에 (3) Ipython console 에서는 script 작성하고 Enter 를 치면 interactive 하게 실행이 되서 결과를 반환합니다. 간단하게 탐색적 분석하거나 Python 처음에 공부할 때 책보면서 이리저리 연습해보기에 편합니다.
[ Spyder default layout ]
Spyder는 Rstudio layout 과 동일한 형태의 layout 도 제공한답니다. (View > Windows layout > Rstudio layout 선택) 'File exployer'를 자주 사용하지 않는 사용자라면 Editor 창을 좀 더 넓게 사용할 수 있는 'Spyder default layout'이 좀더 편할거 같습니다.
[ Spyder : Rstudio layout ]
3. Spyder Outline
View > Panes > Outline (Ctrl+Shift+O) 을 선택하면 아래의 두번째 화면캡쳐의 왼쪽 상단에 보이는 것처럼 script 전체의 cell 구분 및 hierarchy 를 한눈에 볼 수 있으며, cell의 제목을 선택하면 해당 cell로 커서가 바로 이동하므로 매우 편리합니다. 대형 화면 모니터를 사용하는 분이라면 매우 유용한 기능 중에 하나입니다.
[ Spyder : Outline (Editor 좌측 상단) ]
4. 키보드 단축키 (Keyboard shortcuts)
단축키 쓰는거 좋은 하는 분이라면 'Tools > Preferences > Keyboard shortcuts' 를 선택한 후에 default keyboard shortcuts 을 찬찬히 살펴본 후에 '나만의 맞춤형 키보드 단축키'를 설정해보시기 바랍니다.
가령, 저는 제일 많이 사용하는 단축키가 'run selection' 의 'F9' (editor 창의 커서가 위치한 script 한 줄 실행, 혹은 블럭으로 선택한 부분의 script 실행) 인거 같네요. 'F9' 말고 다른 단축키로 바꾸러면 더블 클릭해서 활성화 시킨 후에 다른 단축키를 설정해주면 됩니다.
5. Spyder : 편집 화면 Syntax 색깔 지정 (Syntax coloring )
기본 편집 화면 Syntax 색깔이 마음에 들지 않는다면 'Tools > Preferences > Syntax coloring' 에서 마음에 드는 Systax coloring 을 골라보세요. 가령, 배경이 어둡고 Syntax를 환하게 하고 싶다거나 할 때요.
6. Spyder : 실행 (Run)
코딩한 script 를 실행할 때 R 사용자라면 'Ctrl+Enter' 단축키를 사용했을 텐데요, Python Spyder 는 4가지(!!!)나 제공하며, 'Ctrl+Enter' 가 있기는 한데 R과는 조금 다릅니다. (Spyder 사용 초창기에 당황했던 기억이...)
1) 저장한 파일 전체를 처음부터 끝까지 한꺼번에 실행 (Run file) : F5
2) 현재 커서가 위치한 cell 전체를 실행 (Run current cell) 후 커서 현 cell에 위치 : Ctrl + Enter
: 여기서 cell 은 '#%%' 로 구분이 된, 위/아래로 '선(line)'으로 구분이 된 덩어리를 말합니다.
3) 현재 커서가 위치한 cell 전체를 실행 후 다음번 cell로 커서 이동 (Run current cell and go to the next one) : Shift + Enter
4) 현재 커서가 위치한 행(row) 또는 선택한 행 전체를 실행 (Run selection) : F9
저는 주로 'F9'를 사용하고, 가끔 'Ctrl+Enter' 나 'Shift+Enter' 를 사용합니다. 아주 가끔 'F5'를 사용하구요.
[ Spyder : 실행 (run) ]
[ Spyder : Cell (#%% 사용해서 cell 구분) ]
Spyder 우측 상단의 '폴더' 모양 아이콘을 누르고 탐색기로 경로를 설정해주면 'Working directory setting' 이 됩니다. 이거 설정해주면 파일 저장이나 불러오기 할 때 편러합니다.
7. 부가설명 달기 : #
만약 여러개의 줄에 한꺼번에 코멘트 기호 '#'을 붙이고 싶다면 먼저 마우스로 '#'을 붙이고 싶은 여러개의 줄을 블록으로 선택한 후에 'ctrl+1' (Mac OS의 경우 'command+1') 을 눌러주면 됩니다. 반대로 여러개의 줄에 '#' 기호가 붙어 있는 것을 해제하고 싶다면 역시 마우스로 블럭 설정한 후에 똑같이 'ctrl+1' (맥북은 'command+1')을 눌러주면 됩니다. 토글키인데요, 은근히 유용합니다.
8. 들여쓰기 (indentation) : 4 spaces (or 8 spaces)
'#' 부호를 쓰면 Python script 에 아무런 영향을 주지 않은 상태에서 부가설명을 달 수 있습니다. (R과 동일) 특히 협업을 하면서 Python script를 짜는 경우라면 부가설명을 충실하게 달아주는 것이 여러모로 좋겠지요?!
Python은 code block, 함수 정의나 flow control 등을 하는데 있어서 다른 프로그래밍 언어처럼 '{ }'을 사용하지 않구요, 특이하게도 space 로 들여쓰기(indentation)를 해서 구분을 해줍니다. 이게 처음에 적응이 잘 안되고, 참 이상하고, '{ }' 구분없이 어떻게 프로그래밍을 짜서 당황스럽고, 의문이 가고, 대략 난감한데요... 쓰다보면 이게 참 편하구나 하고 적응이 되는 때가 옵니다. 보통은 4 spaces 로 들여쓰기를 하구요, 프로그래머들 중에는 tab 이나 8 spaces 로 들여쓰기(indentation)를 하기도 하는데요, Spyder의 디폴트 들여쓰기가 '4 spaces' 이구요, 저도 '4 spaces' 추천합니다. 사람마다 생각이 다를 수 있겠습니다만은, 저는 Spyder 쓰는 가장 유용한 기능 중의 하나가 자동으로 알아서 '들여쓰기 (indentation)'가 된다는 점, 그리고 'Syntax coloring'이라고 생각합니다. 만약 '들여쓰기'가 잘못되면 에러나므로 조심해야 하고 매우 중요합니다.
(참고 : Spyder 메뉴의 Tools > Preferences > Editor > Advanced settings > Indentation characters : 4 spaces 에서 들여쓰기(indentation) 설정 바꿈 가능합니다)
이밖에도 Spyder에 여러 기능이 많이 있지만, 전부 소개하자니 너무 많기도 하구요, 제가 위에서 소개한 것 외에는 그다지 사용하지 않는 기능들이기도 해서 여기까지만 소개하도록 하겠습니다.
9. Spyder 최신 버전으로 upgrade (update) 하기
cmd 창에 conda upgrade spyder 를 입력하면 됩니다.
> conda upgrade spyder |
[ cmd 창에서 conda upgrade spyder 실행 화면 예시 ]
10. 편집 창, Console 창 전부 지우기
- 사용 중인 객체 전부 지우기 (Clear all objects): (편집창에서) %reset -sf
- 콘솔 창 전부 지우기 (Clear console window): (편집창 or 콘솔 창에서) %clear (or 콘솔창에 커서 찍고 Ctrl + L )
11. 편집창 내 코드 대문자를 소문자로, 소문자를 대문자로 변환하는 단축 키
- 대문자를 소문자로 변환: Ctrl + u
- 소문자를 대문자로 변환: Ctrl + Shift + u
12. Spyder Window Layout을 Default Layout으로 되돌리기, 현재 Loyout 저장하기
- Default Window Layout으로 되돌리기: View > Window layouts > Spyder Default Layout
- 현재의 Window Layout 저장하기: View > Window layouts > Save current layout
다음번 포스팅에서는 Jupyter Notebook 사용법에 대해서 알아보겠습니다.
많은 도움 되었기를 바랍니다.
이번 포스팅이 도움이 되었다면 아래의 '공감~♡'를 꾸욱 눌러주세요. ^^