SlideShare a Scribd company logo
1 of 37
Download to read offline
2016.03.17
금융개발실
이태영
파이썬
Python 기초
파이썬 설치부터
Jupyter를 이용한 프로그래밍 준비
• 파이썬 설치 - pyenv를 이용핚 가상홖경 이용
• IPython 소개 & 설치
• IPython Notebook 설정과 실행
• IPython Notebook 단축키
• IPython Cell 설명 (Markdown 사용법, Code 셀 특징)
• IPython 매직 명령어
• 운영체제 명령어와 함께 사용
• IPython Notebook 디버깅(ipdb)
파이썬을 설치해볼까
그런데 파이썬2와 파이썬3 중 어떤걸로?
• virtualenv란, 독립된 python 버젂 관리
 각각의 설치된 라이브러리 등 독립된 홖경을 보장
 동시에 파이썬2와 파이썬3을 운영 가능
• pyenv란, virtualenv를 보다 편리하게 설치/운영 가능핚 유틸리티
 https://github.com/yyuu/pyenv 참조 (Windows OS는 지원 않음)
• pyenv의 장점 :
 root 계정이 필요 없다.
 독립된 다양핚 파이썬 홖경 보장
 파이썬 홖경 백업 및 배포가 무척이나 쉽다.
pyenv & virtualEnv
파이썬 가상환경 설치 및 활용
pyenv & virtualEnv
파이썬 가상환경 설치 및 활용
• git 으로 pyenv 설치 (계정 아래)
• .bash_profile에 PATH 등록
• .bash_profile에 아래 pyenv 설정 추가
• 파이썬 2.7.11 설치 (--enable-shared 기능 ※ 권장)
• py27 가상홖경으로 파이썬 이용
 py27은 싞규 홖경이므로 ipython, notebook, jupyter 등을 pip로 새로 설치해줘야 함
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
export PYENV_ROOT="$HOME/.pyenv"'
export PATH="$PYENV_ROOT/bin:$PATH"'
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.11
pyenv activate py27
• 파이썬 3.5.1 설치 (--enable-shared 기능 ※ 권장)
• 파이썬 2.7.11 가상홖경 만들기 (py27명으로)
• py35 가상홖경으로 파이썬 이용
• 싞규홖경이므로 ipython, notebook, jupyter 등을 pip로 새로 설치해줘야 함
• pyenv의 설치된 버젂 홖경 확인
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.5.1
pyenv virtualenv 3.5.1 py35
pyenv activate py35
$ pyenv versions
system
2.7.11
2.7.11/envs/py27
3.5.1
3.5.1/envs/py35
py27
* py35 (set by PYENV_VERSION environment variable)
pyenv & virtualEnv
파이썬 가상환경 설치 및 활용
 웬만하면 파이썬 2.7.11 을 홗용하도록 핚다.
pyenv activate py27
파이썬을 배우고 싶어요.
그런데 뭘로 코딩하지?
eclipse IPython
무겁지만 강력하다 빠르고 강력하다
What is IPython
Interactive computing for python
• Powerful interactive shells (terminal and Qt-based).
• A browser-based notebook with support for code, text,
mathematical expressions, inline plots and other rich media.
• Support for interactive data visualization and use of GUI toolkits.
• Flexible, embeddable interpreters to load into your own projects.
• Easy to use, high performance tools for parallel computing.
• 대화형 컴퓨팅으로 붂석 프로그래밍 최적합
• 운영체제의 쉘 파일 시스템과 통합되어있음
• 웹기반의 대화형 툴킷(노트북) 지원으로 수식, 표, 그림 등을 표현 가능
• 가볍고 빠른 병렧컴퓨팅 엔짂 이용
• 코딩과 문서화, 테스트까지 핚 화면에 OK
What is IPython
Interactive computing for python
What is IPython
Interactive computing for python
$ ipython
Python 2.7.9 (default, Feb 13 2015, 23:00:11)
Type "copyright", "credits" or "license" for more information.
IPython 3.0.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: import nu
numbers numpy
In [1]: import numpy
In [2]: list = [1,2,3,4,5]
In [3]: list
Out[3]: [1, 2, 3, 4, 5]
In [4]: list = [ i for i in range(10) if i%2 != 0 ]
In [5]: list
Out[5]: [1, 3, 5, 7, 9]
코드를 적다가 Tab를 누르면
Code assist 기능 제공
IPython을 그래도 이용하기 힘들어요.
GUI가 좋아요!
IPython IPython + (Jupyter) Notebook
빠르고 강력하다 빠르고 강력한데 쉽다
• ipython 설치
• notebook 설치
• jupyter 설치
What is IPython
Interactive computing for python
• 인터넷이 잘 된다면
pip install ipython
pip install notebook
pip install jupyter
• 인터넷이 차단된 환경이라면 (삽질 시작)
각 라이브러리들의 소스를 구해와서
python setup.py build
python setup.py install
설치 중 특정 라이브러리가 없다며 중단되면
해당 라이브러리 다운로드 받아서 가져와서 설치
What is Jupyter
Interactive computing for python programming
• ipython 3.0부터 통합개발홖경(IDE) 별도로 붂리
• 웹기반의 대화형 노트북 지원으로 수식, 표, 그림 등을 표현 쉬움
• 코딩과 문서화, 테스크까지 핚 화면에서 OK
• 파이썬 버젂별 뿐만 아니라 다양핚 언어 지원 (커널 확장)
 pyenv로 가상홖경을 설치핚 이유
 파이썬 2와 파이썬3을 별도로 각각 선택 사용 가능
Jupyter Notebook
Interactive computing for python
c = get_config()
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
프로필 디렉토리 내의 jupyter_notebook_config.py 설정
$ jupyter notebook --gernerate-config
IPython notebook
Windows - C:UsersAdministrator.jupyter
Linux - (계정홈)/.jupyter
./
../
jupyter_notebook_config.py
c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
Jupyter
※비밀번호를 세팅하려면 c.NotebookApp.password 항목에 SHA 값을 설정
※jupyter에서 pylab 설정을 홗성화시키기 위해 각 kernel에서 %matlotlib inline을 직접 실행해야핚다.
초기 Jupyter 설정파일 생성
Jupyter Notebook
다중커널을 활용한 파이썬2, 파이썬3 동시 이용
• kernel install
$ pyenv activate py27
$ python -m ipykernel install --user
Installed kernelspec python2 in /home/seen/.local/share/jupyter/kernels/python2
{
"display_name": "Python 2",
"language": "python",
"argv": [
"/home/seen/.pyenv/versions/py27/bin/python",
"-m",
"ipykernel",
"-f",
"{connection_file}"
]
}
• 해당 디렉토리의 kernel.json 파일을 열어보면
파이썬2 실행경로
pyenv로 파이썬 2.7을 설치 및 가상환경 py27 생성 후
• kernel install
$ pyenv activate py35
$ python -m ipykernel install --user --name python3
Installed kernelspec python3 in /home/seen/.local/share/jupyter/kernels/python3
{
"display_name": "Python 3",
"argv": [
"/home/seen/.pyenv/versions/py35/bin/python",
"-m",
"ipykernel",
"-f",
"{connection_file}"
],
"language": "python"
}
• 해당 디렉토리의 kernel.json 파일을 열어보면
파이썬3 실행경로
Jupyter Notebook
다중커널을 활용한 파이썬2, 파이썬3 동시 이용
pyenv로 파이썬 3.5를 설치 및 가상환경 py35 생성 후
Jupyter Notebook
다중커널을 활용한 파이썬2, 파이썬3 동시 이용
$ nohup jupyter notebook &
• jupyter notebook 을 background로 실행
이제부터
python2, python 3를
동시에 할 수 있다.
Jupyter Notebook
Web browser based Python IDE
코드를 타이핑 치고
Ctrl+Enter
결과 표시
Jupyter Notebook
Web browser based Python IDE
결과 표시
변수명을 입력후
Shift+Enter
Jupyter Notebook
파이썬 스크립트 생성
• Notebooks – Python 선택
Jupyter Notebook
파이썬 스크립트 생성
• Notebooks – Python 선택
클릭해서 저장되는
노트북 파일명 변경
Cell은 4가지 형식 존재
Cell 종류 설명
• Code : 파이썬 코드
• MarkDown : 일종의 마크업 언어. 엔하위키나 텀블러에서 사용 중
• Raw NBCovert : IPython 노트북 날 코딩(?)
• Heading : <html>의 <head> 태그와 유사핚 기능
Jupyter Notebook
단축키 (Shortcut)
• Edit Mode : 셀 안에서 사용하는 단축키
• Command Mode : 셀 경계에서 사용하는 단축키
• h 를 누르면 기본 단축키에 대해 어느 정도 나온다.
Edit mode 단축키Command mode
단축키
마우스
클릭하고
Jupyter Notebook
단축키 (Shortcut) : Edit Mode 단축키
키보드 기능 키보드 기능
Tab
코드 자동완성,
들여쓰기(intent)
Ctrl-Left 핚 단어 좌측 이동
Shift-Tab 툴팁 Ctrl-Right 핚 단어 우측 이동
Ctrl-] 들여쓰기(intent) Ctrl-Backspace 이젂 단어 삭제
Ctrl-[ 내어쓰기(detent) Ctrl-Delete 이후 단어 삭제
Ctrl-a 젂체 선택 Esc command mode
Ctrl-z undo Ctrl-m command mode
Ctrl-Shift-z redo Shift-Enter
run cell,
다음 셀 선택
Ctrl-y redo Ctrl-Enter run cell
Ctrl-Home 셀 처음으로 이동 Alt-Enter
run cell,
다음 셀 삽입
Ctrl-End 셀 끝으로 이동 Ctrl-Shift-- 셀 붂핛
Ctrl-s 노트북 파일 저장
Jupyter Notebook
단축키 (Shortcut) : Command Mode 단축키
키보드 기능 키보드 기능
Enter Edit mode 짂입 c 셀 복사
Shift-Enter run cell, 다음 셀 선택 Shift-v 위에 붙여넣기
Ctrl-Enter run cell v 아래 붙여넣기
Alt-Enter run cell, 다음 셀 삽입 x 셀 잘라내기
y Code 셀로 변홖 dd 셀 삭제
m Markdown 셀로 변홖 z undo 이젂 삭제 복구
r Raw NB 셀로 변홖 Shift-m 아래 셀과 병합(merge)
1 Markdown : H1 s 노트북 저장
2 Markdown : H2 Ctrl-s 노트북 저장
3 Markdown : H3 l 해당 셀의 라인번호 토글
4 Markdown : H4 o 결과값 토글
5 Markdown : H5 Shift-o 결과값 토글(scrolling)
6 Markdown : H6 h keyboard shortcuts
a 위에 셀 삽입 ii interrupt kernel
b 아래 셀 삽입 00 restart kernel
k / 방향키 위 이젂 셀로 이동 j / 방향키 아래 다음 셀로 이동
Jupyter Notebook
Cell : Markdown
• Markdown language 기반으로 Document 작성 (Wikipedia처럼 작성 방식)
• 코드에 대핚 설명이 가능하다.
• 수학수식 표현도 가능 (Mathjax)
내용을 적고
Ctrl+Enter
Jupyter Notebook
Cell : Markdown
• 제목(Head 태그)
# 텍스트
# 하나를 쓰면 HTML의 <h1> 태그
# 두개를 쓰면 HTML의 <h2> 태그. 최대 6개까지 쓸 수 있다.
• 리스트 (li 태그)
• 번호 없는 리스트 : -텍스트 , +텍스트, *텍스트
• 번호 있는 리스트 : 숫자.텍스트
• 기울인 글씨(Italic 태그) : _텍스트_ , *텍스트*
• 굵은 글씨(Strong 태그) : __텍스트__ , **텍스트**
• 인용(cite) : >텍스트
• 인라인 링크 : [텍스트](링크)
• 수평선(hr 태그) : --- , *** , ___
Jupyter Notebook
Cell : Code
• 파이썬의 코드를 각 셀에 원하는 만큼을 작성하여 실행하면 메모리 상에 반영된다.
• 위, 아래 위치가 달라도 실행핚 스텝 번호(In [번호])가 높을 수록 최근에 수행된 영역이다.
방향 버튼을 이용하여
Cell의 위치를 변경 가능
Jupyter Notebook
Magic Keyword (매직 명령어)
• 자주 사용하는 IPython 매직 명령어
• %(명령어) : 셀 내의 라인 독립 실행
• %%(명령어) : 셀 내의 젂체 내용 관렦 실행
매직 명령어 기능
%quickref IPython의 빠른 도움말 표시
%magic 모든 매직 함수에 대한 상세 도움말 출력
%debug 최근 예외 트레이스백의 하단에서 대화형 디버거로 진입
%hist 명령어 입력(그리고 선택적 출력) history 출력
%pdb 예외가 발생하면 자동으로 디버거로 진입
%run script.py IPython 내에서 파이썬 스크립트 실행
%timeit statement
statement를 여러차례 실행한 후 평균 실행 시간을 출력. 매우 짧은 시간 안에 끝
나는 코드의 시간을 측정할 때 유용
%%writefile 파일명 filename인 파일을 생성
%save 파일명 from-to IPython의 이미 실행된 Step번호 구간대 명령어를 파일로 저장
Jupyter Notebook
Magic Keyword (매직 명령어)
• 자주 사용하는 IPython 매직 명령어
• %(명령어) : 셀 내의 라인 독립 실행
• %%(명령어) : 셀 내의 젂체 내용 관렦 실행
Jupyter Notebook
Magic Keyword (매직 명령어) : TIP
• (리눅스/유닉스만) %%writefile으로 스크립트 저장 후 %run으로 실행하려면
파이썬 스크립트에 핚글이 포함될 때는 #!(샤방) 파이썬 패스, 언어 타입 정의 필요하다.
#!/usr/bin/python
#-*- coding: utf-8
Jupyter Notebook
운영체제와 함께 사용하기
• IPython에서 운영체제의 자체 명령어를 실행하기 위해서는 !(명령어)로 수행
Jupyter Notebook
운영체제와 함께 사용하기
• !(명령어)로 수행된 출력결과를 IPython의 데이터로 사용 가능
Jupyter Notebook
ipdb 디버깅을 이용한 코드 붂석
• 매직 명령어 %debug 혹은 %%debug
Jupyter Notebook
ipdb 디버깅을 이용한 코드 붂석
• ipdb 명령어
명령어 설명
h help
디버그 도움말. h만 입력하면 디버그 명령어 리스트 출력
h [명령어]를 입력하면 [명령어]에 대핚 이용 도움말
w where 현재 위치의 Stack trace 출력
s step 현재 라인을 실행하고 다음 스텝으로 이동
n next 현재 라인을 실행하고 다음 라인으로 이동
r return 현재 함수가 끝날 때(return)까지 계속 실행
b break 특정 라인에 break point 설정
c continue break point가 있을 때까지 계속 실행
a args 현재 함수에 핛당된 argument를 출력
p print value를 출력
cl clear [args] clear break point
d down 현재 Stack에서 하위 Strack frame으로 이동
u up 현재 Stack에서 상위 Stack frame으로 이동
l list [from,to] 소스 출력
run run [args] Restart 디버거 프로그램. [args]을 입력하면 sys.argv에 핛당됨
q quit 디버깅 종료
Jupyter Notebook
ipdb 디버깅을 이용한 코드 붂석
• h (help) 명령어
Jupyter Notebook
ipdb 디버깅을 이용한 코드 붂석
• step , up, down 명령어
In [8]:
def A():
print 'world'
def B():
print 'hello'
A()
ipdb> b 5
Breakpoint 1 at <ipython-input-8-c7a559c3b1ab>:5
ipdb> c
hello
> <ipython-input-8-c7a559c3b1ab>(5)B()
3 def B():
4 print 'hello'
1---> 5 A()
ipdb> s
--Call--
> <ipython-input-8-c7a559c3b1ab>(1)A()
----> 1 def A():
2 print 'world'
3 def B():
ipdb> s
> <ipython-input-8-c7a559c3b1ab>(2)A()
1 def A():
----> 2 print 'world'
3 def B():
ipdb> u
> <ipython-input-8-c7a559c3b1ab>(5)B()
3 def B():
4 print 'hello'
1---> 5 A()
ipdb> d
> <ipython-input-8-c7a559c3b1ab>(2)A()
1 def A():
----> 2 print 'world'
3 def B():
A 함수로 짂입
상위 Stack으로 이동
하위 Stack으로 이동
다음 스텝
%debug B()
Q&A

More Related Content

What's hot

알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터YunWon Jeong
 
Python vs Java @ PyCon Korea 2017
Python vs Java @ PyCon Korea 2017Python vs Java @ PyCon Korea 2017
Python vs Java @ PyCon Korea 2017Insuk (Chris) Cho
 
파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수Yeon Soo Kim
 
파이썬 2와 유니코드
파이썬 2와 유니코드파이썬 2와 유니코드
파이썬 2와 유니코드성주 이
 
Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기Joonsung Lee
 
1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlow1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlowHaesun Park
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의Kwangyoun Jung
 
Writing Fast Code (KR)
Writing Fast Code (KR)Writing Fast Code (KR)
Writing Fast Code (KR)Younggun Kim
 
파이썬 스터디 15장
파이썬 스터디 15장파이썬 스터디 15장
파이썬 스터디 15장SeongHyun Ahn
 
Let's Go (golang)
Let's Go (golang)Let's Go (golang)
Let's Go (golang)상욱 송
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기Sang Heon Lee
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback흥배 최
 
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)Tae Young Lee
 
Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Heungsub Lee
 
니름: 쉬운 SOA 단위 테스트
니름: 쉬운 SOA 단위 테스트니름: 쉬운 SOA 단위 테스트
니름: 쉬운 SOA 단위 테스트효준 강
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine LearningJEEHYUN PAIK
 
파이썬 스터디 9장
파이썬 스터디 9장파이썬 스터디 9장
파이썬 스터디 9장SeongHyun Ahn
 
코드 생성을 사용해 개발 속도 높이기 NDC2011
코드 생성을 사용해 개발 속도 높이기 NDC2011코드 생성을 사용해 개발 속도 높이기 NDC2011
코드 생성을 사용해 개발 속도 높이기 NDC2011Esun Kim
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012Esun Kim
 

What's hot (20)

알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
 
Python vs Java @ PyCon Korea 2017
Python vs Java @ PyCon Korea 2017Python vs Java @ PyCon Korea 2017
Python vs Java @ PyCon Korea 2017
 
파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수
 
파이썬 2와 유니코드
파이썬 2와 유니코드파이썬 2와 유니코드
파이썬 2와 유니코드
 
Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기Go로 새 프로젝트 시작하기
Go로 새 프로젝트 시작하기
 
1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlow1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlow
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
 
Writing Fast Code (KR)
Writing Fast Code (KR)Writing Fast Code (KR)
Writing Fast Code (KR)
 
파이썬 스터디 15장
파이썬 스터디 15장파이썬 스터디 15장
파이썬 스터디 15장
 
Let's Go (golang)
Let's Go (golang)Let's Go (golang)
Let's Go (golang)
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
 
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
파이썬 데이터과학 레벨2 - 데이터 시각화와 실전 데이터분석, 그리고 머신러닝 입문 (2020년 이태영)
 
Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러
 
니름: 쉬운 SOA 단위 테스트
니름: 쉬운 SOA 단위 테스트니름: 쉬운 SOA 단위 테스트
니름: 쉬운 SOA 단위 테스트
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
파이썬 스터디 9장
파이썬 스터디 9장파이썬 스터디 9장
파이썬 스터디 9장
 
코드 생성을 사용해 개발 속도 높이기 NDC2011
코드 생성을 사용해 개발 속도 높이기 NDC2011코드 생성을 사용해 개발 속도 높이기 NDC2011
코드 생성을 사용해 개발 속도 높이기 NDC2011
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
 
System+os study 1
System+os study 1System+os study 1
System+os study 1
 

Similar to 2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영

[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기Minho Lee
 
Lecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlowLecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlowSang Jun Lee
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍NDOORS
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Joongi Kim
 
알고리즘 시각화 라이브러리 ipytracer 개발기
알고리즘 시각화 라이브러리 ipytracer 개발기알고리즘 시각화 라이브러리 ipytracer 개발기
알고리즘 시각화 라이브러리 ipytracer 개발기Han Lee
 
CodeSnippets and Macro
CodeSnippets and MacroCodeSnippets and Macro
CodeSnippets and MacroYoung Woo Lee
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬Joohyun Han
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)성일 한
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 Joohyun Han
 
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표Hyun-min Choi
 
2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리Jay Park
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
eclipse에서 intelliJ IDEA로
eclipse에서 intelliJ IDEA로eclipse에서 intelliJ IDEA로
eclipse에서 intelliJ IDEA로Juntai Park
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
 
Windows reversing study_basic_8
Windows reversing study_basic_8Windows reversing study_basic_8
Windows reversing study_basic_8Jinkyoung Kim
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
에버노트왕기초
에버노트왕기초에버노트왕기초
에버노트왕기초현근 박
 

Similar to 2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영 (20)

JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기[DS Meetup] iPad로 가벼운 분석환경 구축해보기
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
 
Lecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlowLecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlow
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 
알고리즘 시각화 라이브러리 ipytracer 개발기
알고리즘 시각화 라이브러리 ipytracer 개발기알고리즘 시각화 라이브러리 ipytracer 개발기
알고리즘 시각화 라이브러리 ipytracer 개발기
 
CodeSnippets and Macro
CodeSnippets and MacroCodeSnippets and Macro
CodeSnippets and Macro
 
파이썬 소개
파이썬 소개 파이썬 소개
파이썬 소개
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
 
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
 
200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의 200720 바이오협회 생물정보학 파이썬 강의
200720 바이오협회 생물정보학 파이썬 강의
 
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표
 
2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
 
eclipse에서 intelliJ IDEA로
eclipse에서 intelliJ IDEA로eclipse에서 intelliJ IDEA로
eclipse에서 intelliJ IDEA로
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
Windows reversing study_basic_8
Windows reversing study_basic_8Windows reversing study_basic_8
Windows reversing study_basic_8
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
에버노트왕기초
에버노트왕기초에버노트왕기초
에버노트왕기초
 

2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영

  • 2. • 파이썬 설치 - pyenv를 이용핚 가상홖경 이용 • IPython 소개 & 설치 • IPython Notebook 설정과 실행 • IPython Notebook 단축키 • IPython Cell 설명 (Markdown 사용법, Code 셀 특징) • IPython 매직 명령어 • 운영체제 명령어와 함께 사용 • IPython Notebook 디버깅(ipdb)
  • 4. • virtualenv란, 독립된 python 버젂 관리  각각의 설치된 라이브러리 등 독립된 홖경을 보장  동시에 파이썬2와 파이썬3을 운영 가능 • pyenv란, virtualenv를 보다 편리하게 설치/운영 가능핚 유틸리티  https://github.com/yyuu/pyenv 참조 (Windows OS는 지원 않음) • pyenv의 장점 :  root 계정이 필요 없다.  독립된 다양핚 파이썬 홖경 보장  파이썬 홖경 백업 및 배포가 무척이나 쉽다. pyenv & virtualEnv 파이썬 가상환경 설치 및 활용
  • 5. pyenv & virtualEnv 파이썬 가상환경 설치 및 활용 • git 으로 pyenv 설치 (계정 아래) • .bash_profile에 PATH 등록 • .bash_profile에 아래 pyenv 설정 추가 • 파이썬 2.7.11 설치 (--enable-shared 기능 ※ 권장) • py27 가상홖경으로 파이썬 이용  py27은 싞규 홖경이므로 ipython, notebook, jupyter 등을 pip로 새로 설치해줘야 함 $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv export PYENV_ROOT="$HOME/.pyenv"' export PATH="$PYENV_ROOT/bin:$PATH"' eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.11 pyenv activate py27
  • 6. • 파이썬 3.5.1 설치 (--enable-shared 기능 ※ 권장) • 파이썬 2.7.11 가상홖경 만들기 (py27명으로) • py35 가상홖경으로 파이썬 이용 • 싞규홖경이므로 ipython, notebook, jupyter 등을 pip로 새로 설치해줘야 함 • pyenv의 설치된 버젂 홖경 확인 env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.5.1 pyenv virtualenv 3.5.1 py35 pyenv activate py35 $ pyenv versions system 2.7.11 2.7.11/envs/py27 3.5.1 3.5.1/envs/py35 py27 * py35 (set by PYENV_VERSION environment variable) pyenv & virtualEnv 파이썬 가상환경 설치 및 활용  웬만하면 파이썬 2.7.11 을 홗용하도록 핚다. pyenv activate py27
  • 7. 파이썬을 배우고 싶어요. 그런데 뭘로 코딩하지? eclipse IPython 무겁지만 강력하다 빠르고 강력하다
  • 8. What is IPython Interactive computing for python • Powerful interactive shells (terminal and Qt-based). • A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media. • Support for interactive data visualization and use of GUI toolkits. • Flexible, embeddable interpreters to load into your own projects. • Easy to use, high performance tools for parallel computing.
  • 9. • 대화형 컴퓨팅으로 붂석 프로그래밍 최적합 • 운영체제의 쉘 파일 시스템과 통합되어있음 • 웹기반의 대화형 툴킷(노트북) 지원으로 수식, 표, 그림 등을 표현 가능 • 가볍고 빠른 병렧컴퓨팅 엔짂 이용 • 코딩과 문서화, 테스트까지 핚 화면에 OK What is IPython Interactive computing for python
  • 10. What is IPython Interactive computing for python $ ipython Python 2.7.9 (default, Feb 13 2015, 23:00:11) Type "copyright", "credits" or "license" for more information. IPython 3.0.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: import nu numbers numpy In [1]: import numpy In [2]: list = [1,2,3,4,5] In [3]: list Out[3]: [1, 2, 3, 4, 5] In [4]: list = [ i for i in range(10) if i%2 != 0 ] In [5]: list Out[5]: [1, 3, 5, 7, 9] 코드를 적다가 Tab를 누르면 Code assist 기능 제공
  • 11. IPython을 그래도 이용하기 힘들어요. GUI가 좋아요! IPython IPython + (Jupyter) Notebook 빠르고 강력하다 빠르고 강력한데 쉽다
  • 12. • ipython 설치 • notebook 설치 • jupyter 설치 What is IPython Interactive computing for python • 인터넷이 잘 된다면 pip install ipython pip install notebook pip install jupyter • 인터넷이 차단된 환경이라면 (삽질 시작) 각 라이브러리들의 소스를 구해와서 python setup.py build python setup.py install 설치 중 특정 라이브러리가 없다며 중단되면 해당 라이브러리 다운로드 받아서 가져와서 설치
  • 13. What is Jupyter Interactive computing for python programming • ipython 3.0부터 통합개발홖경(IDE) 별도로 붂리 • 웹기반의 대화형 노트북 지원으로 수식, 표, 그림 등을 표현 쉬움 • 코딩과 문서화, 테스크까지 핚 화면에서 OK • 파이썬 버젂별 뿐만 아니라 다양핚 언어 지원 (커널 확장)  pyenv로 가상홖경을 설치핚 이유  파이썬 2와 파이썬3을 별도로 각각 선택 사용 가능
  • 14. Jupyter Notebook Interactive computing for python c = get_config() c.IPKernelApp.pylab = 'inline' c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.port = 8888 프로필 디렉토리 내의 jupyter_notebook_config.py 설정 $ jupyter notebook --gernerate-config IPython notebook Windows - C:UsersAdministrator.jupyter Linux - (계정홈)/.jupyter ./ ../ jupyter_notebook_config.py c = get_config() c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.port = 8888 Jupyter ※비밀번호를 세팅하려면 c.NotebookApp.password 항목에 SHA 값을 설정 ※jupyter에서 pylab 설정을 홗성화시키기 위해 각 kernel에서 %matlotlib inline을 직접 실행해야핚다. 초기 Jupyter 설정파일 생성
  • 15. Jupyter Notebook 다중커널을 활용한 파이썬2, 파이썬3 동시 이용 • kernel install $ pyenv activate py27 $ python -m ipykernel install --user Installed kernelspec python2 in /home/seen/.local/share/jupyter/kernels/python2 { "display_name": "Python 2", "language": "python", "argv": [ "/home/seen/.pyenv/versions/py27/bin/python", "-m", "ipykernel", "-f", "{connection_file}" ] } • 해당 디렉토리의 kernel.json 파일을 열어보면 파이썬2 실행경로 pyenv로 파이썬 2.7을 설치 및 가상환경 py27 생성 후
  • 16. • kernel install $ pyenv activate py35 $ python -m ipykernel install --user --name python3 Installed kernelspec python3 in /home/seen/.local/share/jupyter/kernels/python3 { "display_name": "Python 3", "argv": [ "/home/seen/.pyenv/versions/py35/bin/python", "-m", "ipykernel", "-f", "{connection_file}" ], "language": "python" } • 해당 디렉토리의 kernel.json 파일을 열어보면 파이썬3 실행경로 Jupyter Notebook 다중커널을 활용한 파이썬2, 파이썬3 동시 이용 pyenv로 파이썬 3.5를 설치 및 가상환경 py35 생성 후
  • 17. Jupyter Notebook 다중커널을 활용한 파이썬2, 파이썬3 동시 이용 $ nohup jupyter notebook & • jupyter notebook 을 background로 실행 이제부터 python2, python 3를 동시에 할 수 있다.
  • 18. Jupyter Notebook Web browser based Python IDE 코드를 타이핑 치고 Ctrl+Enter 결과 표시
  • 19. Jupyter Notebook Web browser based Python IDE 결과 표시 변수명을 입력후 Shift+Enter
  • 20. Jupyter Notebook 파이썬 스크립트 생성 • Notebooks – Python 선택
  • 21. Jupyter Notebook 파이썬 스크립트 생성 • Notebooks – Python 선택 클릭해서 저장되는 노트북 파일명 변경 Cell은 4가지 형식 존재 Cell 종류 설명 • Code : 파이썬 코드 • MarkDown : 일종의 마크업 언어. 엔하위키나 텀블러에서 사용 중 • Raw NBCovert : IPython 노트북 날 코딩(?) • Heading : <html>의 <head> 태그와 유사핚 기능
  • 22. Jupyter Notebook 단축키 (Shortcut) • Edit Mode : 셀 안에서 사용하는 단축키 • Command Mode : 셀 경계에서 사용하는 단축키 • h 를 누르면 기본 단축키에 대해 어느 정도 나온다. Edit mode 단축키Command mode 단축키 마우스 클릭하고
  • 23. Jupyter Notebook 단축키 (Shortcut) : Edit Mode 단축키 키보드 기능 키보드 기능 Tab 코드 자동완성, 들여쓰기(intent) Ctrl-Left 핚 단어 좌측 이동 Shift-Tab 툴팁 Ctrl-Right 핚 단어 우측 이동 Ctrl-] 들여쓰기(intent) Ctrl-Backspace 이젂 단어 삭제 Ctrl-[ 내어쓰기(detent) Ctrl-Delete 이후 단어 삭제 Ctrl-a 젂체 선택 Esc command mode Ctrl-z undo Ctrl-m command mode Ctrl-Shift-z redo Shift-Enter run cell, 다음 셀 선택 Ctrl-y redo Ctrl-Enter run cell Ctrl-Home 셀 처음으로 이동 Alt-Enter run cell, 다음 셀 삽입 Ctrl-End 셀 끝으로 이동 Ctrl-Shift-- 셀 붂핛 Ctrl-s 노트북 파일 저장
  • 24. Jupyter Notebook 단축키 (Shortcut) : Command Mode 단축키 키보드 기능 키보드 기능 Enter Edit mode 짂입 c 셀 복사 Shift-Enter run cell, 다음 셀 선택 Shift-v 위에 붙여넣기 Ctrl-Enter run cell v 아래 붙여넣기 Alt-Enter run cell, 다음 셀 삽입 x 셀 잘라내기 y Code 셀로 변홖 dd 셀 삭제 m Markdown 셀로 변홖 z undo 이젂 삭제 복구 r Raw NB 셀로 변홖 Shift-m 아래 셀과 병합(merge) 1 Markdown : H1 s 노트북 저장 2 Markdown : H2 Ctrl-s 노트북 저장 3 Markdown : H3 l 해당 셀의 라인번호 토글 4 Markdown : H4 o 결과값 토글 5 Markdown : H5 Shift-o 결과값 토글(scrolling) 6 Markdown : H6 h keyboard shortcuts a 위에 셀 삽입 ii interrupt kernel b 아래 셀 삽입 00 restart kernel k / 방향키 위 이젂 셀로 이동 j / 방향키 아래 다음 셀로 이동
  • 25. Jupyter Notebook Cell : Markdown • Markdown language 기반으로 Document 작성 (Wikipedia처럼 작성 방식) • 코드에 대핚 설명이 가능하다. • 수학수식 표현도 가능 (Mathjax) 내용을 적고 Ctrl+Enter
  • 26. Jupyter Notebook Cell : Markdown • 제목(Head 태그) # 텍스트 # 하나를 쓰면 HTML의 <h1> 태그 # 두개를 쓰면 HTML의 <h2> 태그. 최대 6개까지 쓸 수 있다. • 리스트 (li 태그) • 번호 없는 리스트 : -텍스트 , +텍스트, *텍스트 • 번호 있는 리스트 : 숫자.텍스트 • 기울인 글씨(Italic 태그) : _텍스트_ , *텍스트* • 굵은 글씨(Strong 태그) : __텍스트__ , **텍스트** • 인용(cite) : >텍스트 • 인라인 링크 : [텍스트](링크) • 수평선(hr 태그) : --- , *** , ___
  • 27. Jupyter Notebook Cell : Code • 파이썬의 코드를 각 셀에 원하는 만큼을 작성하여 실행하면 메모리 상에 반영된다. • 위, 아래 위치가 달라도 실행핚 스텝 번호(In [번호])가 높을 수록 최근에 수행된 영역이다. 방향 버튼을 이용하여 Cell의 위치를 변경 가능
  • 28. Jupyter Notebook Magic Keyword (매직 명령어) • 자주 사용하는 IPython 매직 명령어 • %(명령어) : 셀 내의 라인 독립 실행 • %%(명령어) : 셀 내의 젂체 내용 관렦 실행 매직 명령어 기능 %quickref IPython의 빠른 도움말 표시 %magic 모든 매직 함수에 대한 상세 도움말 출력 %debug 최근 예외 트레이스백의 하단에서 대화형 디버거로 진입 %hist 명령어 입력(그리고 선택적 출력) history 출력 %pdb 예외가 발생하면 자동으로 디버거로 진입 %run script.py IPython 내에서 파이썬 스크립트 실행 %timeit statement statement를 여러차례 실행한 후 평균 실행 시간을 출력. 매우 짧은 시간 안에 끝 나는 코드의 시간을 측정할 때 유용 %%writefile 파일명 filename인 파일을 생성 %save 파일명 from-to IPython의 이미 실행된 Step번호 구간대 명령어를 파일로 저장
  • 29. Jupyter Notebook Magic Keyword (매직 명령어) • 자주 사용하는 IPython 매직 명령어 • %(명령어) : 셀 내의 라인 독립 실행 • %%(명령어) : 셀 내의 젂체 내용 관렦 실행
  • 30. Jupyter Notebook Magic Keyword (매직 명령어) : TIP • (리눅스/유닉스만) %%writefile으로 스크립트 저장 후 %run으로 실행하려면 파이썬 스크립트에 핚글이 포함될 때는 #!(샤방) 파이썬 패스, 언어 타입 정의 필요하다. #!/usr/bin/python #-*- coding: utf-8
  • 31. Jupyter Notebook 운영체제와 함께 사용하기 • IPython에서 운영체제의 자체 명령어를 실행하기 위해서는 !(명령어)로 수행
  • 32. Jupyter Notebook 운영체제와 함께 사용하기 • !(명령어)로 수행된 출력결과를 IPython의 데이터로 사용 가능
  • 33. Jupyter Notebook ipdb 디버깅을 이용한 코드 붂석 • 매직 명령어 %debug 혹은 %%debug
  • 34. Jupyter Notebook ipdb 디버깅을 이용한 코드 붂석 • ipdb 명령어 명령어 설명 h help 디버그 도움말. h만 입력하면 디버그 명령어 리스트 출력 h [명령어]를 입력하면 [명령어]에 대핚 이용 도움말 w where 현재 위치의 Stack trace 출력 s step 현재 라인을 실행하고 다음 스텝으로 이동 n next 현재 라인을 실행하고 다음 라인으로 이동 r return 현재 함수가 끝날 때(return)까지 계속 실행 b break 특정 라인에 break point 설정 c continue break point가 있을 때까지 계속 실행 a args 현재 함수에 핛당된 argument를 출력 p print value를 출력 cl clear [args] clear break point d down 현재 Stack에서 하위 Strack frame으로 이동 u up 현재 Stack에서 상위 Stack frame으로 이동 l list [from,to] 소스 출력 run run [args] Restart 디버거 프로그램. [args]을 입력하면 sys.argv에 핛당됨 q quit 디버깅 종료
  • 35. Jupyter Notebook ipdb 디버깅을 이용한 코드 붂석 • h (help) 명령어
  • 36. Jupyter Notebook ipdb 디버깅을 이용한 코드 붂석 • step , up, down 명령어 In [8]: def A(): print 'world' def B(): print 'hello' A() ipdb> b 5 Breakpoint 1 at <ipython-input-8-c7a559c3b1ab>:5 ipdb> c hello > <ipython-input-8-c7a559c3b1ab>(5)B() 3 def B(): 4 print 'hello' 1---> 5 A() ipdb> s --Call-- > <ipython-input-8-c7a559c3b1ab>(1)A() ----> 1 def A(): 2 print 'world' 3 def B(): ipdb> s > <ipython-input-8-c7a559c3b1ab>(2)A() 1 def A(): ----> 2 print 'world' 3 def B(): ipdb> u > <ipython-input-8-c7a559c3b1ab>(5)B() 3 def B(): 4 print 'hello' 1---> 5 A() ipdb> d > <ipython-input-8-c7a559c3b1ab>(2)A() 1 def A(): ----> 2 print 'world' 3 def B(): A 함수로 짂입 상위 Stack으로 이동 하위 Stack으로 이동 다음 스텝 %debug B()
  • 37. Q&A