Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Python Korea Seminar] Windows에서 Python 개발환경 설정하기

[Python Korea Seminar] Windows에서 Python 개발환경 설정하기

Joongi Kim

June 29, 2014
Tweet

More Decks by Joongi Kim

Other Decks in Programming

Transcript

  1. 연사 소개 ▪ 현재 • 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]
  2. 오늘 할 이야기 ▪ 뭔가 심각한 거 많이 하는 것

    같지만, 오늘은 정말 기초적인 이야기하려고 왔습니다. :) ▪ 실제 개발 작업은 주로 Linux 서버를 이용하지만, 데스크톱PC는 Windows를 선호해요. (GUI 안정적, 날개셋 한글입력기, 게임…) ▪ Microsoft에서 일할 때는 당연히 Windows가 기본 환경 • 뒤에 있을 Visual Studio PyTools 세션 잘 들어보세요~ • Windows에서도 자잘한 노가다 작업을 Python으로 해결하면 편합니다. • ipython notebook 같은 것도 로컬 PC에서 바로 돌리면 편하겠죠?
  3. 목 차 ▪ Python 기본 설치 • PATH 설정하기 •

    Windows용 패키지 찾기 • 여러 버전(2.x & 3.x) 동시에 사용하기 ▪ 개발환경 관리 노하우 • 설정 파일 버전관리 • 자동 초기 설정 스크립트 소개 • PuTTY + tmux + vim 조합을 위한 solarized 테마 설정법
  4. Python 기본 설치: PATH 설정하기 ▪ 공식 배포되는 installer로 설치한

    다음 첫번째로 할 일! (사실 installer에 기능이 있으나 기본으로 꺼져있음)
  5. 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이라든지 하는 기본/패키지 제공 스크립트를 명령프롬프트에서 원활하게 사용할 수 있다.
  6. Python 기본 설치: Windows용 패키지 찾기 ▪ 다들 한번쯤… pip

    install xxx 했는데 뭔가 잘 안 된 적 있죠?
  7. 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는 수동으로 해당 패키지 찾아서 설 치해야 함. 그래도 컴파일 안 해도 되는 게 큰 장점!)
  8. 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.exe mklink pythonwXY.exe pythonw.exe • Scripts 내의 스크립트들은 Python 3.x 이후에서는 대개 버전 번호 붙어서 생성됨. (예: pip3 install xxx)
  9. 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 실행
  10. 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 실행
  11. Python 기본 설치: 여러 버전 동시에 사용하기 ▪ Tips •

    본인이 작성하는 .py 파일에는 shebang line을 적어두는 습관을 들이자. (https://docs.python.org/3/using/windows.html#shebang-lines 참조) • pip, ipython 등의 스크립트 사용할 때 항상 버전 확인하는 습관을 들이자. (한쪽에만 설치되어 있거나 할 경우 헷갈릴 수 있음) ▪ 주의 사항 • 파일 이름이 똑같으면 PATH에서 앞쪽에 나오는 폴더 소속이 무조건 우선. • 버전이 달라도 마찬가지이므로, 굳이 버전을 구분해야 하는 스크립트가 있다면 심 볼릭 링크를 활용하자.
  12. 개발환경 관리 노하우: 설정 파일 버전 관리 ▪ 여러분은 개발환경

    관리(?) 어떻게 하십니까? ▪ 새로운 서버가 생겼을 때, PC 포맷했을 때, … • 요즘은 클라우드 시대라 VM 따위 생성했다 지웠다는 아무 일도 아닌 세상 • .vimrc 적어주는 것도 슬슬 귀찮다… ▪ 그러던 중 한 동아리 선배의 GitHub 저장소를 보게 되었다. • https://github.com/netj/dotfiles
  13. 개발환경 관리 노하우: 자동 초기 설정 스크립트 소개 ▪ 조금

    더 자동화할 수는 없을까? • 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 엔진을 이용해 설정 파일 생성·적용
  14. 개발환경 관리 노하우: 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 등)이 이에 맞춰 색상 코드를 출력하도록 해야 한다.
  15. 개발환경 관리 노하우: 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의 주석 부분 등)