본문 바로가기
Other

아나콘다(Anaconda) 환경에 주피터 노트북(Jupyter Notebook) 설치 및 실행하기

by 푸고배 2020. 2. 14.

주피터 노트북(Jupyter Notebook)이란?

 

라이브 코드, 방정식, 시각화, 설명 텍스트가 포함된 문서를 작성하고 공유할 수 있는 오픈 소스 웹 응용 프로그램이다.

데이터 정리 및 변환, 수치 시뮬레이션, 통계 모델링, 데이터 시각화, 기계 학습 등의 용도로 사용된다. 

주피터 노트북의 최대 장점은 파이썬 코드를 코드블럭 별로 실행하여 코드를 단계별로 접근할 수 있다는 것이다. 

코드 블럭 사이에는 주석과 같은 역할을 하는 코드 설명 텍스트 블럭을 넣을 수도 있으며, 

텍스트 블럭은 실행환경에 영향을 주지 않는다.

 

아나콘다(Anaconda) 가상환경을 사용하는 이유는?

 

프로젝트별로 모듈 설치를 다르게, 모듈 버전을 다르게 사용해야하는 경우가 발생하기 때문에 도커(docker)나 아나콘다 가상환경을 이용해서 독립된 환경을 만들어준다. 

설정 꼬이면 컴퓨터 미는 것 대신에 가상환경 제거만 하면 돼서 Good :) b 

 

주피터 노트북 설치하기 

  • 아나콘다 프롬프트 열기

 

파일 탐색기에서 Anaconda Prompt를 실행시킨다.

(아나콘다가 이미 설치되어 있다고 가정)

 

  • 아나콘다 가상환경 생성하기

 

conda create -n [conda_name]

 

 

가상환경 생성 명령어 conda_name에는 설정할 가상환경 이름을 적어준다.

다음과 같은 화면이 나타나면 설치에 성공한 것이다.

 

conda activate [conda_name]

생성한 가상환경을 활성화하는 함수로, 명령어를 입력하면 (base) 부분이 ([conda_name])으로 변경된다.

 

conda deactivate

활성화한 가상환경을 비활성화하는 함수이다. (python exit와 동일)

 

  • 주피터 노트북 설치하기

conda install jupyter notebook

conda activate로 가상환경을 활성화한 상태에서 위와 같은 명령어로 주피터 노트북을 설치해준다.

현재는 주피터 노트북이 이미 컴퓨터에 깔려있기 때문에 아래와 같은 화면이 나오는데 처음 설치 시 필요한 모듈 설치로 인해 시간이 조금 걸린다.

 

또 다른 방법으로는 Anaconda Navigator를 이용해서 다운받는 방법이 있다.

Environmnets로 이동하면 생성한 가상환경의 리스트가 나타나고 모듈을 설치할 가상환경을 선택 후 오른쪽 화면의 검색창에 jupyter notebook을 검색하여 체크상자를 클릭하면 간단하게 설치가 가능하다.

 

 

  • 주피터 노트북 로컬에서 실행하기

jupyter notebook

아나콘다 프롬프트에 명령어를 입력하면 아래와 같은 화면이 뜬다.

 

 

/'(루트) 경로는 명령어를 입력한 경로로, default 주소값은 localhost, default 포트값은 8888이다. 

하지만 이 'localhost:8888/tree'라는 경로를 자동으로 뜨는 화면이 아닌 브라우저에 직접 입력하면 다음과 같은 비밀번호나 토큰을 입력하라는 창이 뜬다. 이 화면은 주피터 노트북 원격 접속 시에도 뜬다.

 

 

 

  • 주피터 노트북 원격 접속 설정하기

 

개인 컴퓨터로 러닝을 돌리는 경우도 있지만, 서버 컴퓨터를 이용해서 러닝을 돌릴 때는 원격으로 주피터 노트북에 접속해야할 것이다.

 

jupyter notebook --generate-config

주피터 노트북의 환경설정 파일을 만드는 명령어이다.

명령어를 실행하면 C:\User\[username]\.jupyter\jupyter_notebook_config.py이 만들어진다.

 

vi /[username]/.jupyter/jupyter_notebook_config.py

명령어를 사용해서 환경설정 파일을 수정해준다.

만약 vi 명령어가 실행되지 않는다면 [conda install vim]을 이용해서 vim 을 먼저 깔아준다.

윈도우라면 그냥 직접 경로 찾아가서 파이참과 같은 에디터를 이용해서 코드를 수정해줘도 된다. 

 

원격 접속을 위해서는 주석처리되어 있는 코드 몇개를 수정해야한다.

      • 아이피 설정접속할 자신의 서버 ip를 입력한다.

## The IP address the notebook server will listen on.

#c.NotebookApp.ip = 'localhost'

 

c.NotebookApp.ip = 'ip 주소'

 

      • 브라우저 실행 : 외부에서 접속할 것이기 때문에 False로 바꿔준다.

 

## Whether to open in a browser after starting. The specific browser used is

 

 

# platform dependent and determined by the python standard library `webbrowser`

 

 

# module, unless it is overridden using the --browser (NotebookApp.browser)

 

 

# configuration option.

 

 

#c.NotebookApp.open_browser = True

 

c.NotebookApp.open_browser = False

 

      • Password 설정

 

아나콘다 프롬프트에 ipython을 입력하면 파이썬 코드를 입력할 수 있다.

그러고 순서대로 다음 명령어를 입력하면

 

from notebook.auth import passwd

 

passwd()

 

그 다음 설정할 비밀번호를 입력하면, 아래 화면과 같은 비밀번호를 암호화시킨sha1 암호 코드가 뜬다.

이 코드를 복사해둔다.

 

 

그리고나서 jupyter_notebook_config.py 에서 다음과 같은 주석을 수정한다.

# The string should be of the form type:salt:hashed-password.
#c.NotebookApp.password = ''

 

c.NotebookApp.password = 'sha1 암호코드 붙여넣기' 

 

    • 외부 접속 허용

## Set the Access-Control-Allow-Origin header
#
# Use '*' to allow any origin to access your server.
#
# Takes precedence over allow_origin_pat.
#c.NotebookApp.allow_origin = ''

 

c.NotebookApp.allow_orign = '*' 

 

    • 접속 포트 설정 : 기본값은 8888로 되어있지만 원하는 포트로 바꿀 수 있다.

## The port the notebook server will listen on.
#c.NotebookApp.port = 8888

 

c.NotebookApp.port = '포트번호' 

 

 

좀 더 쉽게 접속하기

 

환경설정 파일을 이용해도 되지만 매개변수를 이용해서 jupyter notebook 명령어 실행 시에 간편하게 환경설정을 할 수 있다.

 

ex) jupyter notebook --ip=[ip 주소] --port[포트번호]

 

jupyter notebook --h를 통해 자세한 매개변수 종류를 알 수 있다.

usage: jupyter-notebook [-h] [--log-level NOTEBOOKAPP.LOG_LEVEL] [--config NOTEBOOKAPP.CONFIG_FILE] [--ip NOTEBOOKAPP.IP] [--port NOTEBOOKAPP.PORT] [--port-retries NOTEBOOKAPP.PORT_RETRIES] [--transport KERNELMANAGER.TRANSPORT] [--keyfile NOTEBOOKAPP.KEYFILE] [--certfile NOTEBOOKAPP.CERTFILE] [--client-ca NOTEBOOKAPP.CLIENT_CA] [--notebook-dir NOTEBOOKAPP.NOTEBOOK_DIR] [--browser NOTEBOOKAPP.BROWSER] [--pylab [NOTEBOOKAPP.PYLAB]] [--gateway-url GATEWAYCLIENT.URL] [--debug] [--generate-config] [-y] [--no-browser] [--no-mathjax] [--allow-root] [--script] [--no-script]

 

 

반응형

댓글