다운로드
작성자: admin 작성일시: 2017-06-07 21:38:57 조회수: 14872 다운로드: 518
카테고리: Python 태그목록:

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

이 절에서는 아이파이썬과 주피터 노트북을 사용할 때 사용자의 편의를 위해 사용자 설정(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 패키지로 그림을 그릴 때 나눔고딕 폰트를 사용하므로 그에 맞도록 설정했다. 이 파일이 정상 실행되려면 나눔고딕 폰트가 미리 설치되어 있어야 한다. 나눔고딕 폰트는 다음 웹페이지에서 내려받을 수 있다. 윈도우나 맥에서는 TTF 나눔고딕 일반용 설치 파일을 내려받아 클릭하면 설치된다.

https://hangeul.naver.com/font

리눅스는 터미널에서 다음과 같이 실행한다.

sudo apt-get install -y fonts-nanum*

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

In [1]:
import matplotlib.font_manager

[f.name for f in matplotlib.font_manager.fontManager.ttflist if f.name.startswith("N")]
Out:
['NanumGothic',
 'NanumGothic',
 'NanumBarunpen',
 'NanumMyeongjo',
 'Nanum Brush Script',
 'NanumSquare',
 'NanumMyeongjo',
 'NanumSquare',
 'NanumBarunpen',
 'NanumSquare',
 'NanumSquareRound',
 'NanumMyeongjo',
 'NanumBarunGothic',
 'NanumGothic',
 'NanumSquareRound',
 'NanumGothic',
 'NanumBarunGothic',
 'NanumBarunGothic',
 'Nanum Pen Script',
 'NanumSquareRound',
 'NanumGothicCoding',
 'Noto Mono',
 'NanumSquare',
 'NanumSquareRound',
 'NanumBarunGothic',
 'NanumGothicCoding']

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

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

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

질문/덧글

폰트 매니저 임포트 syon*** 2019년 11월 25일 2:57 오후

1. 마지막 폰트 확인 관련 코트에서 저 같은 경우에는 두번 째 라인에 폰트 매니저를 아래와 같이 임포트 하지 않으면 에러가 나네요.

import matplotlib.font_manager

2. 혹시 구글 코랩에서도 사용자 설정 파일을 적용시킬 수 있는 방법이 있는지요?

강의 너무 좋습니다.

감사합니다.

나눔 고딕이 검색이 안될 경우 love*** 2020년 1월 29일 5:33 오후

matplotlib.font_manager._rebuild()

config 파일이 설정 되어 있다는 가정 하에.
해당 명령어 적어 주신 다음에 재 실행 해주시면 되네요!

답변: 나눔 고딕이 검색이 안될 경우 관리자 2020년 2월 4일 4:43 오후

감사합니다.

아나콘다 가상환경 사용 시 쥬피터 노트북 설치 여부 kime*** 2020년 3월 5일 4:46 오후

아나콘다에서 가상환경을 사용할 경우 아이파이썬과 쥬피터 노트북을 가상환경 마다 별도로 설치해야 하나요? 별도로 설치하는 경우 아이파이썬과 쥬피터 노트북의 설정 파일은 어떻게 되나요? 가상환경에서 쥬피터 노트북을 실행시키면 아이파이썬 커널이 알수없는 에러라면 자꾸 다운되어서 문의합니다.

답변: 아나콘다 가상환경 사용 시 쥬피터 노트북 설치 여부 관리자 2020년 3월 6일 7:09 오전

1. 아이파이썬은 가상환경마다 모두 설치해야 합니다.
2. 주피터 노트북은 가상환경에 따라 다른데 conda 가상환경의 경우 root 환경에만 설치하면 별도로 설치할 필요가 없습니다. 그러나 기타 다른 패키지를 사용한 가상환경의 경우에는 별도로 설치해야 합니다.

사용자에 의해 삭제되었습니다. thgu*** 2020년 4월 2일 6:26 오후

사용자에 의해 삭제되었습니다.

ipython_config.py 설정 파일 관련 kwak*** 2020년 4월 21일 9:02 오후

위 내용 중 추가 정보가 있으면 좋을 것 같습니다.

1. ipython_config.py 는 .ipython\profile_default에 저장하면 된다.
- 저장 전에 생성을 위해서는 https://ipython.org/ipython-doc/stable/config/intro.html 를 참고하여 anaconda prompt에서 ipython profile create [profilename] 을 입력. [profilename] 은 비워두게 되면 profile_default 폴더에 ipython_config.py 파일 생성됨. 이 파일을 수정하면 됨.

2. ipython 실행시 "UsageError: Line magic function `%autoreload` not found." 에러가 발생하는 경우
- ipython_config.py 파일에 %load_ext autoreload 를 추가

c = get_config()

c.InteractiveShellApp.exec_lines = [
"%matplotlib inline",
"%load_ext autoreload",
"%autoreload 2",
"mpl.rc('font', family='nanumgothic')",
"mpl.rc('axes', unicode_minus=False)",
"mpl.rc('figure', figsize=(8, 5))",
"mpl.rc('figure', dpi=300)",
]

%load_ext autoreload

답변: ipython_config.py 설정 파일 관련 관리자 2020년 4월 24일 8:09 오후

감사합니다. 추후 추가하겠습니다.

한글 폰트는 폰트이름이 한글로 되는데 jee9*** 2020년 5월 27일 10:29 오전

윈도우 환경에서 폰트이름을 Nanum처럼 영문으로 뜨게 하려면 시스템 언어를 영어로 변경해야 되는것 같네요...