> ## Content Index
> Fetch the complete content index at: https://www.popit.kr/llms.txt
> Use this file to discover other available public pages before exploring further.

# 파이썬 쥬피터를 이용한 텐서플로우 개발환경 구성하기
- URL: https://www.popit.kr/tensorflow-dev-environment-with-jupyter/
- Published: 2017-04-12T15:10:29.000Z
- Updated: 2017-04-12T17:51:06.000Z
- Author: 광식 이
- Tags: #소프트웨어, Python, Tensorflow, #데이터분석, jupyter, notebook, 쥬피터, 노트북

# 개요

파이썬 쥬피터를 설치 및 실행하는 방법을 최대한 간단히 익혀 정리한다.

간단히 요약하자면 pip로 설치하고 파이썬 프로그램을 실행하면 로컬 서버로 쥬피터가 뜨는 원리이다.

이를 이용하면 아직 익숙하지 않은 텐서플로우 개발(특히 원격 서버를 통한 개발) 시 유용할듯 하여 포스팅 한다. 텐서플로우 코드를 **라이브 코딩**하거나 **공유**하기 위해서도 좋을듯 하다.

필자는 텐서플로우를 위해서만 파이썬을 사용하기 때문이지 사실 쥬피터의 장점은 텐서플로우에 국한된 얘기는 아니다. ^^

텐서플로우 기본 설치 및 개발환경 구성은 다른 포스팅으로 쉽게 따라할 수 있다.

## 쥬피터를 사용하면 뭐가 좋을까?

많은 분들이 글을 읽기에 앞서 궁금해할만한 것은 쥬피터를 사용하면 뭐가 좋은지일 것 같다.

아래와 같은 대상이나 상황에 좋을듯 하다.

- 개발자가 아닌 데이터 사이언티스트가 코드를 간단히 돌려 볼 때
- 텐서플로우 및 파이썬 문법에 익숙하지 않은 개발자
- 코드 스니펫 또는 부연설명을 잘 정리하여 코드를 공유 할 때
- 파이썬, 텐서플로우 개발환경에서 자유롭게 웹 브라우저 하나로 개발을 진행할 때

## 기본 사용법

기본 사용법은 [유튜브의 동영상](https://www.youtube.com/embed/HW29067qVWk?ref=popit.kr)이 도움되는듯 하여 공유한다.

## 설치

파이썬2용 설치법으로 파이썬3는 pip대신 pip3를 입력하면 된다.

여담으로 필자는 텐서플로우를 사용하고 텐서플로우를 virtualenv환경으로 설치하였기 때문에 필자의 virtualenv환경에서 쥬피터를 설치하였다.

```sh
$ pip install jupyter
```

## 쥬피터용 패스워드 생성하기

로컬 혹은 원격으로 서버를 띄우기 때문에 최소한의 보안을 위해 실행되는 쥬피터 사이트에서 패스워드 인증을 하게 만든다. 이를 위해 필요한 SHA 암호화 패스워드를 생성하기 이해 아래와 같이 **passwd.py**파일을 만들어 실행한다.

passwd.py를 아래와 같이 만든다.

```python
from notebook.auth import passwd
print(passwd())
```

이제 만든 passwd.py를 실행하면 생성된 암호를 확인할 수 있다.

```sh
$ python passwd.py
```

## 쥬피터용 패스워드 설정하기

위에서 만든 패스워드를 설정파일에서 바꾸어 보자.

```sh
$ jupyter notebook --generate-config # 쥬피터 환경설정 파일 생성
$ vi ~/.jupyter/jupyter_notebook_config.py
```

**jupyter\_notebook\_config.py**파일에서 아래의 변수에 위에서 생성한 암호화된 패스워드를 넣어준다.

```sh
c.NotebookApp.password = u'sha1:이런형식을집어넣는다.'
```

## 쥬피터 실행

쥬피터를 실행한다. 가급적 내가 사용할 워킹 디렉토리에서 실행하면 좋을듯 하다.

필자는 텐서플로우용 virtualenv에 쥬피터를 설치하고 텐서플로우 작업 디렉토리에서 쥬피터를 실행하였다.

```sh
$ jupyter notebook
```

## 실행화면

패스워드를 설정했기 때문에 로그인 개념이 생긴것을 알 수 있다. 아마 로컬에서 실행시키면 로그인 된 상태에서 실행이 될것이다.

아래의 코드 예제는 [모두를 위한 딥러닝 예제코드](https://github.com/hunkim/DeepLearningZeroToAll?ref=popit.kr)이다.

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/jupyter0100.png)

워킹 디렉토리를 탐색기형태로 볼 수있다. 쥬피터 노트북으로 만든 파일은 확장자가 ipynb(아마도 아이파이썬 노트북의 약자인듯)인데 이를 하나 실행해보자.

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/jupyter0200.png)

아래와 같이 코드블럭별로 코드 및 실행결과가 아래에 깔끔하게 출력된것을 확인 할 수 있다.

## 기능 간단히 살펴보기 #1 : 코드블럭 생성 및 즉시 출력

마크다운으로 설명을 추가하고 코드를 생성하여 블럭별로 실행해볼 수 있다.

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/jupyter0300.png)

## 기능 간단히 살펴보기 #2 : 차트 생성 및 이미지 첨부

예를 하나 더 들어 다른 노트북 파일을 열어보면 **Matplotlib**의 결과가 바로 출력되는 것이나 **이미지를 첨부**하여 집어넣어 놓은 것을 볼 수 있다.

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/jupyter0400.png)

## 기능 간단히 살펴보기 #3 : 노트북 파일 공유방법

작업한 노트북 파일은 노트북 파일, 파이썬 코드, HTML 등등 공유를 할 수 있으므로 아주 유용하게 사용 할 수 있을듯 하다.

![](http://www.kwangsiklee.com/wp-content/uploads/2017/04/jupyter0500.png)

# 정리

쥬피터 설치 및 실행방법을 간단히 알아보았다.

쥬피터 및 아이파이썬의 장점은 웹 환경에서 코드를 실행해볼수 있고 또한 인터프리터 환경으로 코드를 짜고 바로바로 실행결과를 볼 수 있다는 장점이 있는듯 하다.

또한 마크다운, HTML 심지어 Matplotlib를 이용한 차트까지 동적으로 생성해 볼 수 있으니 개발자와 비개발자(예를 들어 데이터 과학자)들이 사용하기에 무척 좋은 환경인듯 하다.