Ipython: ํ˜ธ์ถœ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ๋งˆ๋ฒ•์— ํ˜ธ์ถœ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์ง€์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2014๋…„ 03์›” 22์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ipython/ipython

์•ˆ๋…•ํ•˜์‹ญ๋‹ˆ๊นŒ,
๋ฌธ์ œ ์ถ”์ ๊ธฐ ๋˜๋Š” ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ง€์› ์งˆ๋ฌธ์„ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ €๋ฅผ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ธฐ๊บผ์ด ๋‹ค์‹œ ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

HTML ๋…ธํŠธ๋ถ์˜ ํ˜ธ์ถœ๊ธฐ๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅ์„ ์‹คํ–‰ํ•˜๋Š” ๋Œ€์‹  ์…€์„ ๋”ฐ๋ผ ์ธ์‡„ํ•˜๊ธฐ ์œ„ํ•ด %psource ์˜ ์ถœ๋ ฅ์„ ์–ป์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์„œ๋ฅผ ๋‘˜๋Ÿฌ๋ณด๊ณ  ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์„ ํ•˜๊ณ  ๋ฌธ์ œ ์ถ”์ ๊ธฐ(๋‚ด๊ฐ€ ์ฐพ์€ ๋Œ€๋ถ€๋ถ„์˜ ๊ด€๋ จ ๋ฌธ์ œ๋Š” #1947์ž„)์™€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์•˜์ง€๋งŒ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์ •๋ง ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋…ธํŠธ๋ถ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ๋ฌผ ์ •๋ณดํ•™ ๊ต์œก ์ž๋ฃŒ๋ฅผ ํ•จ๊ป˜ ๋„ฃ๊ณ  ์ผ๋ถ€ ์ฃผ์š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ํ‘œ์‹œํ•˜๋ ค๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด ์†Œ์Šค ์ฝ”๋“œ์˜ ๊ธฐ๋Šฅ์ด ์ฃผ๋ณ€ ํ…์ŠคํŠธ์—์„œ ๋…ผ์˜๋  ๋•Œ nbviewer๋ฅผ ํ†ตํ•ด ๋ฉ‹์ง€๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
๊ทธ๋ ‰

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

page() ๊ฐ€ MIME ์œ ํ˜• ํ‚ค ๋ฌธ์„œ์˜ ์‚ฌ์ „์œผ๋กœ ํ˜ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฆ˜์—๋Š” ์ข€ ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๋‚ด IPython 5.1.0 ์„ค์น˜๋ฅผ ์œ„ํ•ด ํ˜ธ์ถœ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•œ ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

~/.ipython/profile_default/startup/no-pager.py :

from __future__ import print_function

def page_printer(data, start=0, screen_lines=0, pager_cmd=None):
    if isinstance(data, dict):
        data = data['text/plain']
    print(data)

import IPython.core.page
IPython.core.page.page = page_printer

๋ชจ๋“  3 ๋Œ“๊ธ€

์˜ˆ, ํ˜ธ์ถœ๊ธฐ ํ˜ธ์ถœ์„ ์ธ์‡„๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. http://nbviewer.ipython.org/gist/minrk/7715212

์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

page() ๊ฐ€ MIME ์œ ํ˜• ํ‚ค ๋ฌธ์„œ์˜ ์‚ฌ์ „์œผ๋กœ ํ˜ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฆ˜์—๋Š” ์ข€ ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๋‚ด IPython 5.1.0 ์„ค์น˜๋ฅผ ์œ„ํ•ด ํ˜ธ์ถœ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•œ ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

~/.ipython/profile_default/startup/no-pager.py :

from __future__ import print_function

def page_printer(data, start=0, screen_lines=0, pager_cmd=None):
    if isinstance(data, dict):
        data = data['text/plain']
    print(data)

import IPython.core.page
IPython.core.page.page = page_printer
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰