python korea 2014년 6월 세미나 - windows 환경에서 python 개발환경 세팅하기

18
Windows 환경에서 Python 개발환경 설정하기 김준기 2014. 6. 29

Upload: joongi-kim

Post on 29-Nov-2014

2.093 views

Category:

Engineering


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

Windows 환경에서Python 개발환경설정하기

김준기

2014. 6. 29

Page 2: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

연사소개

▪ 현재

• KAIST 전산학과첨단망연구실박사과정 (http://an.kaist.ac.kr)• 태터네트워크재단(TNF) Needlworks멤버 (http://needlworks.org)• Popong프로젝트참여 (http://popong.com & http://pokr.kr)

▪ 과거

• Microsoft Research Cambridge@UK연구인턴 (2012년겨울)• KT NexR인턴 (2009년여름) 및파트타임개발 (2010년초까지)

▪ 논문

• The Power of Batching in the Click Modular Router[APSys 2012 Workshop]

Page 3: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

오늘할이야기

▪ 뭔가심각한거많이하는것같지만,오늘은정말기초적인이야기하려고왔습니다. :)

▪ 실제개발작업은주로 Linux 서버를이용하지만,데스크톱PC는Windows를선호해요.(GUI 안정적, 날개셋한글입력기, 게임…)

▪ Microsoft에서일할때는당연히Windows가기본환경• 뒤에있을 Visual Studio PyTools세션잘들어보세요~

• Windows에서도자잘한노가다작업을 Python으로해결하면편합니다.

• ipython notebook 같은것도로컬 PC에서바로돌리면편하겠죠?

Page 4: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

목차

▪ Python 기본설치• PATH 설정하기

• Windows용패키지찾기

• 여러버전(2.x & 3.x)동시에사용하기

▪ 개발환경관리노하우

• 설정파일버전관리• 자동초기설정스크립트소개• PuTTY + tmux + vim 조합을위한 solarized 테마설정법

Page 5: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

Python 기본설치:

PATH 설정하기▪ 공식배포되는 installer로설치한다음첫번째로할일!

(사실 installer에기능이있으나기본으로꺼져있음)

Page 6: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

Python 기본설치:

PATH 설정하기▪ python.exe가있는곳 + Scripts, Tools\Scripts 폴더지정

• 예시 Python 설치경로는 C:\Development\Python34

–이렇게버전번호를적으면서로다른버전을동시설치할때구분하기좋다.

• PATH 추가경로

– C:\Development\Python34– C:\Development\Python34\Scripts– C:\Development\Python34\Tools\Scripts

• Installer가신경써주지않는 Scripts와 Tools\Scripts까지추가해야 2to3라든지ipython이라든지하는기본/패키지제공스크립트를명령프롬프트에서원활하게사용할수있다.

Page 7: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

Python 기본설치:

Windows용패키지찾기▪ 다들한번쯤… pip install xxx 했는데뭔가잘안된적있죠?

Page 8: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

Python 기본설치:

Windows용패키지찾기▪ 구글이알려주는해결방법

• 사용중인 CPython이컴파일된 Visual Studio / Windows SDK 버전과동일한환경을구축하거나혹은몇몇설정파일과스크립트를손으로고치거나…

• Visual Studio에서제공하는전용 command prompt 사용(vcvarsall.bat 파일적용된상태로실행됨. 근데이것도가끔틀린버전을가리킬때가있다…)

• 근데해당라이브러리가의존하는다른 C/C++라이브러리가있다면?Welcome to the hell gate.

▪ http://www.lfd.uci.edu/~gohlke/pythonlibs/• 찬양할지어다….• 자신의 Python 버전에맞는것찾아서설치하면끝. 프로그램추가/제거제어판에서쉽게삭제가능하다. (여전히 dependency는수동으로해당패키지찾아서설치해야함. 그래도컴파일안해도되는게큰장점!)

Page 9: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

Python 기본설치:

여러버전동시에사용하기▪ Python 3.3 이상권장

• 이유 : Python 스크립트의 shebang line (“# /usr/bin/env python3”) 읽어서시스템에설치된가장적합한버전의 Python 인터프리터를찾아실행하는Windows용wrapper가포함되어있다! (C:\Windows\py.exe, C:\Windows\pyw.exe)

▪ PATH 설정• 우선시하고자하는버전이앞쪽에오도록 PythonXY, PythonXY/Tools/Scripts 폴더를모두추가해준다. (그냥 python이라고만실행하면앞쪽실행)

• Python 2.x 버전이앞쪽에오도록 PythonXY/Scripts폴더를모두추가해준다.(Python 3.x는보통스크립트실행파일명에버전번호가붙지만 2.x는그렇지않음)

▪ 실행파일 심볼릭 링크 만들기

• 명령프롬프트를관리자권한으로실행하여 PATH 뒤쪽에나오는버전의 Python디렉토리에서다음실행:mklink pythonXY.exe python.exemklink pythonwXY.exe pythonw.exe

• Scripts 내의스크립트들은 Python 3.x 이후에서는대개버전번호붙어서생성됨.(예: pip3 install xxx)

Page 10: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

Python 기본설치:

여러버전동시에사용하기▪ 예제

• Python 3.4를우선으로, 호환성을위해 Python 2.7도사용하고싶다.• 설정방법

– PATH 환경변수 : “C:\Windows\System32;C:\Windows;C:\Dev\Python34;C:\Dev\Python27;C:\Dev\Python34\Tools\Scripts;C:\Dev\Python27\Tools\Scripts;C:\Dev\Python27\Scripts;C:\Dev\Python34\Scripts;…”

– C:\Dev\Python27> mklink python2.exe python.exe– %APPDATA%\py.ini 설정 : [defaults]\r\npython=3

• 결과– python => Python 3.4 실행– python2 => Python 2.7 실행– ipython => Python 2.7의 ipython실행– ipython3 => Python 3.4의 ipython실행– .py (#!python) 직접실행 => Python 3.4 실행– .py (#!python2) 직접실행 => Python 2.7 실행– .py (#!python3) 직접실행 => Python 3.4 실행

Page 11: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

Python 기본설치:

여러버전동시에사용하기▪ 예제

• Python 2.7을우선으로, 시험삼아 Python 3.4도사용하고싶다.• 설정방법

– PATH 환경변수 : “C:\Windows\System32;C:\Windows; C:\Dev\Python27;C:\Dev\Python34;C:\Dev\Python27\Tools\Scripts;C:\Dev\Python34\Tools\Scripts;C:\Dev\Python27\Scripts;C:\Dev\Python34\Scripts;…”

– C:\Dev\Python34> mklink python3.exe python.exe– %APPDATA%\py.ini 설정 : [defaults]\r\npython=2

• 결과– python => Python 2.7 실행– python3 => Python 3.4 실행– ipython => Python 2.7의 ipython실행– ipython3 => Python 3.4의 ipython실행– .py (#!python) 직접실행 => Python 2.7 실행– .py (#!python2) 직접실행 => Python 2.7 실행– .py (#!python3) 직접실행 => Python 3.4 실행

Page 12: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

Python 기본설치:

여러버전동시에사용하기

▪ Tips• 본인이작성하는 .py파일에는 shebang line을적어두는습관을들이자.

(https://docs.python.org/3/using/windows.html#shebang-lines참조)

• pip, ipython등의스크립트사용할때항상버전확인하는습관을들이자.(한쪽에만설치되어있거나할경우헷갈릴수있음)

▪ 주의사항

• 파일이름이똑같으면 PATH에서앞쪽에나오는폴더소속이무조건우선.

• 버전이달라도마찬가지이므로, 굳이버전을구분해야하는스크립트가있다면심볼릭링크를활용하자.

Page 13: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

개발환경관리노하우:

설정파일버전관리

▪ 여러분은개발환경관리(?) 어떻게하십니까?

▪ 새로운서버가생겼을때, PC 포맷했을때, …• 요즘은클라우드시대라 VM 따위생성했다지웠다는아무일도아닌세상

• .vimrc적어주는것도슬슬귀찮다…

▪ 그러던중한동아리선배의 GitHub저장소를보게되었다.• https://github.com/netj/dotfiles

Page 14: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

개발환경관리노하우:

자동초기설정스크립트소개▪ 조금더자동화할수는없을까?

• hg pull https://bitbucket.org/daybreaker/snippets• cd snippets/home_config• ./deploy.py -f lab --force• (Linux 경우에만) ./gen-italics-terminfo.sh

▪ “-f” 옵션은 “flavor” 결정. (예: home, lab, needlworks, popong, …)▪ 각 flavor들은 configuration.json파일에저장

• dotfiles : template 파일과실제설정파일간의mapping 관리, template 변수정의, 어떤 OS에적용되는파일인지정의 (변수예: gitconfig의 username과email, vimrc의 colorscheme이름)

• flavors : 각 flavor 별로 template variable 설정및포함·제외파일추가설정• 외부공개가곤란한설정이있는경우 local branch로관리

▪ deploy.py는 bottle template 엔진을이용해설정파일생성·적용

Page 15: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

개발환경관리노하우:

solarized 테마설정법▪ Solarized Colorscheme

• http://ethanschoonover.com/solarized• 세밀하게조율된 16색상 + yellow/blue

grayscale 8개 base 색상• dark style / light style 모두가능• GitHub Atom 편집기에도기본제공• 이슬라이드가 light style!

▪ 설정시주의사항

• xterm-256color로는표현불가능.• 터미널클라이언트(PuTTY, Terminal, iTerm,

XShell등)의 16색프로필자체를 solarized 색으로맞춰주고서버측프로그램들(dircolors, vim 등)이이에맞춰색상코드를출력하도록해야한다.

Page 16: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

개발환경관리노하우:

solarized 테마설정법▪ Daybreaker’s snippets/home-config

• Client side

– putty 설정– solarized_putty.reg 적용

– xterm-256color를 TERM 환경변수로설정

– 새로운서버에접속할때 solarized 프로필선택하고서버주소입력해서프로필fork & save 해두면해당서버영구적용.

• Server side

– configuration.json의 flavor에서 vim_colorscheme, term_colorscheme 변수를모두 solarized로맞춤.

– ./gen-italics-terminfo.sh 실행해서 xterm-256colors-italics 터미널타입활성화=> iPuTTY 0.63 이상버전사용하면이탤릭글꼴적용(vim의주석부분등)

Page 17: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

개발환경관리노하우:

solarized 테마설정법▪ 적용한결과

Page 18: Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기

감사합니다.