[Python] Ipython 노트북 설치하기

2017. 11. 21. 14:02Programming/python

IPython??

기존의 python보다 좀더 인터프리터가 쉽게 나타나 있는 형태라고 보면 될 것 같다.

python을 웹에서 코딩하고 작업할 수는 없을까라는 요구에 의해 나오게 된 거라도 봐도 될 것 같다.


간단히 어떻게 설치하고 사용하는지 살펴보자.


우선 ipython을 설치한다.

참고로 ipython은 python 버전 2.7 또는 3.3 이상을 요구한다.


$> pip install ipython


아래 라이브러리는 Ipython 사용에 있어 dependencies를 가지는 라이브러리들이기 때문에 함께 설치한다.

- jinja2, needed for the notebook

- sphinx, needed for nbconvert

- pyzmq, needed for IPython's parallel computing features, qt console and notebook

- pygments, used by nbconvert and the Qt console for syntax highlighting

- tornado, needed by the web-based notebook

- nose, used by the test suite

- readline (on OS X) or pyreadline (on Windows), needed for the terminal


$> pip install jinja2 sphinx pyzmq pygments tornado nose readline


해당 라이브러리들이 정상동작하는지 확인하기 위해서 iptest로 확인해본다.


$> iptest


이제 ipython notebook을 실행하면 해당 웹브라우저가 화면에 뜨는 것을 볼 수 있다.


$> ipython notebook


만약 서버에 설치한 후 원격으로 접속하고 싶다면?


접근하고자 하는 server의 profile을 만들어준다. 아래의 예시는 testserver라는 명칭으로 profile을 만들었다.


$> ipython profile create testserver


이렇게 명령어를 날리면 ipython_config.py, ipython_notebook_config.py, ipython_nbcovert_config.py 이렇게 3개의 파일이

생성된 것을 확인 할 수 있다.

vi로 ipython_notebook_config.py를 연후 아래와 같이 수정한다.


c.NotebookApp.ip = '*'

c.NotebookApp.open_browser = False

c.NotebookApp.port = 8888

c.IPKernelApp.pylab = 'inline'


수정이 완료되었으면 아래와 같이 ipython notebook을 실행시킨다.


$> ipython notebook --profile=testserver


browser에서 해당 서버의 ip와 지정한 port를 입력하면 ipython 시작 화면을 확인 할 수 있다.




오른쪽의 New Notebook 버튼을 클릭하여 새로운 workspace를 만든 후 기존 python 인터프리터와 동일하게 사용하면 된다.





Jupyter로 업그레이드 하자

이 글을 작성한 지가 얼마 안되는 것 같은데, ipython Notebook이 Jupyter로 업그레이드가 되었다. -_-;; 

이런 젠장..

업그레이드 하자..


'아 모야 걍 Notebook 쓰면 안돼???'


이런 분들도 있을 거라 예상된다.. 물론 첨엔 나도 같은 생각이었으니.. 그런데 Jupyter의 기능 중 놀라운 기능이 있다.

바로 다양한 언어 플랫폼이 지원가능하다는 것이다. Jupyter가 제공하는 인터페이스에 맞게 해당 언어의 커널을 붙이면 

python 뿐만 아니라 해당 커널을 붙인 언어의 interpreter가 가능해진다.

(물론 실제 동작은 서버에서 실행되고 Jupyter에서는 출력해주는 역할만 담당한다.)


나 역시 python 이외에도 scala란 언어를 공부하고 있는데 Jupyter를 사용하면 좀 더 수월할 것 같아서 업그레이드 하기로 결심했다. 


일단 Ipython notebook을 pip로 업그레이드 시켜준다.


$> pip install --upgrade ipython


그 후에 jsonschema라는 것을 설치해 줘야 한다. (아마도 jupyter의 인터페이스를 위한 패키지인것 같음)


$>pip install jsonschema


이제 실행해 보자


$> ipython notebook



추가


더 간단하게 그냥 pip install jupyter라고 하면 가장 빠를 것 같다.. (이 분야는 변화가 빠르니...)

$> pip install jupyter

$> jupyter notebook


하지만 이렇게 실행하면 Running as root is note recommended. Use --allow-root to bypass. 라는 에러 메시지와 함께 실행이 안된다. 실행 시 아래와 같이 --allow-root 옵션을 넣어주자.



ip와 port 변경을 원할 시에는 아래와 같이 실행 시에 --ip, --port 옵션을 넣어 주자.