1.5 아이파이썬 및 주피터 설정

이 절에서는 아이파이썬과 주피터 노트북을 사용할 때 사용자의 편의를 위해 사용자 설정(user customization)을 하는 방법을 소개한다. 이 책에서는 여기에서 설명하는 설정이 되어 있다고 가정하고 진행하므로 반드시 이 설정을 따라하기를 추천한다.

아이파이썬 및 주피터 설정 디렉터리

아이파이썬, 주피터 노트북이 설치되면 사용자 홈 디렉터리 아래에 .ipython 이라는 디렉터리가 생기는데, 이곳이 설정 디렉터리다. 주피터라는 이름으로 바뀌기 전에는 아이파이썬이라는 이름을 공통으로 사용했는데, 이름이 바뀐 지금도 설정 디렉터리 이름을 그대로 사용하고 있다.

탐색기에서 .ipython 디렉터리가 보이지 않을 때는 다음처럼 실행한다.

  • 윈도우에서는 탐색기에서 [보기 → 옵션 → “폴더 및 검색 옵션 변경”]을 눌러 폴더 옵션 창을 띄운 뒤 “보기” 탭에서 “숨긴 파일, 폴더 및 드라이브 표시”에 체크한다.

  • 맥 OS에서는 Finder에서 홈 디렉터리로 이동한 뒤 키보드에서 shift + command + . 키를 누른다.

프로필 작성

아이파이썬 또는 주피터 관련 설정을 하려면 프로필(profile)이 필요하다. 프로필은 .ipython 설정 디렉터리 아래에 디렉터리 형태로 저장되는데 기본으로 만들어지는 프로필 디렉터리는 profile_default다.

프로필 디렉터리는 다음 위치다.

  • 사용자홈디렉터리/.ipython/profile_default/

만약 이 프로필 디렉터리가 없다면 터미널에서 다음 명령으로 만들 수 있다.

$ ipython profile create

사용자 설정 파일

사용자 설정은 다음 두 파일을 이용하며 설정 내용은 모든 아이파이썬과 주피터 노트북에 공통으로 적용된다.

  • 스타트업 파일

  • ipython_config.py 파일

스타트업 파일

스타트업(startup) 파일은 아이파이썬과 주피터 노트북을 이용한 콘솔이 시작되기 전에 실행되는 파일이다. 스타트업 파일은 따로 정해진 이름이 있는 것이 아니라 프로필 디렉터리 아래의 startup 폴더 아래의 .py 확장자를 가진 모든 파이썬 스크립트가 스타트업 파일이며 파일 이름의 알파벳 순서로 실행된다.

이 책에서는 매번 주피터 노트북을 실행할 때마다 반복해서 패키지 임포트 명령을 치지 않아도 되도록 자주 사용되는 패키지를 미리 임포트한다.

스타트업 파일이 있는 디렉터리는 다음과 같다.

  • 사용자홈디렉터리/.ipython/profile_default/startup/

보통 가장 먼저 실행되어야 하는 파일 이름을 00.py, 그 다음으로 실행되는 파일 이름을 01.py과 같이 설정한다. 이 디렉터리에 00.py이라는 이름으로 파일을 하나 만들고 다음과 같이 내용을 입력하여 저장한다.

# 경고 무시
import warnings
warnings.simplefilter('ignore')

# 자주 사용하는 패키지를 임포트
import matplotlib as mpl
import matplotlib.pylab as plt
from mpl_toolkits.mplot3d import Axes3D
import seaborn as sns
import numpy as np
import scipy as sp
import pandas as pd
import statsmodels.api as sm
import sklearn as sk

# matplotlib 설정
mpl.use('Agg')

# seaborn 설정
sns.set()
sns.set_style("whitegrid")
sns.set_color_codes()

단, 이 스타트업 파일이 정상 실행되려면 임포트할 패키지가 미리 설치되어 있어야 한다. 따라서 위 스타업 파일에서 임포트하는 다음 패키지가 설치되어 있는지 conda list 명령으로 확인하고 만약 설치되어 있지 않다면 ‘파이썬 패키지 설치하기’의 내용을 참조하여 패키지를 설치한다.

ipython_config.py 설정 파일

일부 파이썬 명령은 하나의 스크립트 안에서만 실행되므로 스타트업 파일에 적어 놓아도 실제 아이파이썬 콘솔에는 적용되지 않는다. 예를 들어 mpl.rc 계열의 임포트 명령은 하나의 스크립트 안에서만 영향을 미친다. 이때는 ipython_config.py 설정 파일 안에서 c.InteractiveShellApp.exec_lines 설정 항목을 다음처럼 지정하면 된다. 이 항목은 파이썬이 시작한 직후 스스로 실행할 명령어로 이루어진 문자열 목록이다.

다음은 저자가 사용하는 ipython_config.py 설정 파일의 예다.

c = get_config()

c.InteractiveShellApp.exec_lines = [
    "mpl.rc('font', family='NanumGothic')",  # 나눔고딕 폰트 사용
    "mpl.rc('axes', unicode_minus=False)", # 유니코드 음수 기호 사용
    "mpl.rc('figure', figsize=(8, 5))",  # 그림 크기 (단위: 인치)
    "mpl.rc('figure', dpi=300)",  # 그림 해상도
]

저자는 맷플롯리브(Matplotlib) 패키지로 그림을 그릴 때 나눔고딕 폰트를 사용하므로 그에 맞도록 설정했다. 이 파일이 정상 실행되려면 나눔고딕 폰트가 미리 설치되어 있어야 한다. 나눔고딕 폰트는 다음 웹페이지에서 내려받을 수 있다.

리눅스에서 나눔고딕 폰트를 설치하려면 다음과 같이 실행한다.

sudo apt install -y fonts-nanum*
sudo fc-cache -fv
rm ~/.cache/matplotlib -rf

나눔고딕 폰트가 정상적으로 설치되면 파이썬 혹은 아이파이썬 콘솔을 실행하여 다음 코드를 실행한다. 이 코드는 설치된 폰트 중 이름이 “N”으로 시작하는 폰트의 목록을 보여준다. 출력된 폰트 이름 중에 ‘NanumGothic’이라는 이름이 보이면 정상적으로 설치된 것이다.

import matplotlib.font_manager

matplotlib.font_manager._rebuild()
sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist if f.name.startswith("Nanum")])
['Nanum Brush Script',
 'Nanum Pen Script',
 'NanumBarunGothic',
 'NanumBarunGothic',
 'NanumBarunGothic',
 'NanumBarunGothic',
 'NanumBarunpen',
 'NanumBarunpen',
 'NanumGothic',
 'NanumGothic',
 'NanumGothic',
 'NanumGothic',
 'NanumGothic Eco',
 'NanumGothic Eco',
 'NanumGothic Eco',
 'NanumGothicCoding',
 'NanumGothicCoding',
 'NanumMyeongjo',
 'NanumMyeongjo',
 'NanumMyeongjo',
 'NanumMyeongjo Eco',
 'NanumMyeongjo Eco',
 'NanumMyeongjo Eco',
 'NanumSquare',
 'NanumSquare',
 'NanumSquare',
 'NanumSquare',
 'NanumSquareRound',
 'NanumSquareRound',
 'NanumSquareRound',
 'NanumSquareRound']

위에서 적용한 설정은 모두 아이파이썬, 주피터 노트북과 같은 상호작용 콘솔에서만 적용되고, 파이썬 인터프리터를 직접 실행하여 파이썬 스크립트를 가동하는방식의 실행시에는 적용되지 않는다.

이제부터 나오는 모든 파이썬 예제 코드는 스타트업 파일과 ipython_config.py 설정 파일이 앞에서 작성한 대로 설정되어 있다는 가정하에 작성한다. 따라서 각자 사용하는 파이썬 환경을 미리 설정 파일에 적용해두기 바란다.

위 파일들은 다음 링크에서 다운로드받을 수도 있다.