Ipython: IPython ๋…ธํŠธ๋ถ ์˜ค๋ฅ˜: ๋…ธํŠธ๋ถ์„ ๋กœ๋“œํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 01์›” 23์ผ  ยท  8์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ipython/ipython

์ง€๋‚œ ๋ช‡ ๋ถ„ ๋™์•ˆ ์ด์ „์— Python3.4๋กœ ๋งŒ๋“  .ipynb ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์ด ์žˆ๋Š” ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์Œ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

ipython3 notebook

ํŠน์ • .ipynb ํŒŒ์ผ์„ ํด๋ฆญํ•˜๋ฉด ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

An unknown error occurred while loading this notebook. This version can load notebook formats v4 or earlier. See the server log for details.
[E 00:19:41.468 NotebookApp] Unhandled error in API request
    Traceback (most recent call last):
      File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/traitlets/traitlets.py", line 460, in get
        value = obj._trait_values[self.name]
    KeyError: 'db'
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/notebook/base/handlers.py", line 458, in wrapper
    result = yield gen.maybe_future(method(self, *args, **kwargs))
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tornado/gen.py", line 1008, in run
    value = future.result()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tornado/concurrent.py", line 232, in result
    raise_exc_info(self._exc_info)
  File "<string>", line 3, in raise_exc_info
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tornado/gen.py", line 282, in wrapper
    yielded = next(result)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/notebook/services/contents/handlers.py", line 124, in get
    path=path, type=type, format=format, content=content,
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/notebook/services/contents/filemanager.py", line 354, in get
    model = self._notebook_model(path, content=content)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/notebook/services/contents/filemanager.py", line 314, in _notebook_model
    self.mark_trusted_cells(nb, path)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/notebook/services/contents/manager.py", line 447, in mark_trusted_cells
    trusted = self.notary.check_signature(nb)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/nbformat/sign.py", line 220, in check_signature
    if self.db is None:
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/traitlets/traitlets.py", line 488, in __get__
    return self.get(obj, cls)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/traitlets/traitlets.py", line 467, in get
    value = self._validate(obj, dynamic_default())
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/nbformat/sign.py", line 127, in _db_default
    self.init_db(db)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/nbformat/sign.py", line 139, in init_db
    )""")
sqlite3.DatabaseError: database disk image is malformed

์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ?

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

๋…ธํŠธ๋ถ ์„œ๋ช… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์˜ฎ๊ธฐ๋ ค๋ฉด:

cd $(jupyter --data-dir)
mv nbsignatures.db nbsignatures.db.bak   # Or just rm it - there's probably no use keeping the corrupt file

์šฐ๋ฆฌ๋Š” ์˜ค๋ฅ˜๋ฅผ ํฌ์ฐฉํ•˜๊ณ  ์ด๋ฅผ jupyter/nbformat#32์—์„œ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ชจ๋“  ์ „์ž ํ•„๊ธฐ์žฅ์„ ๋‹ค์‹œ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ผ๋ถ€ ํ’๋ถ€ํ•œ ์ถœ๋ ฅ์ด ํ‘œ์‹œ๋˜๊ธฐ ์ „์— ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ ๋ฉ”๋‰ด์—์„œ ์ˆ˜๋™์œผ๋กœ ์‹ ๋ขฐํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋…ธํŠธ๋ถ ์„œ๋ช… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์˜ฎ๊ธฐ๋ ค๋ฉด:

cd $(jupyter --data-dir)
mv nbsignatures.db nbsignatures.db.bak   # Or just rm it - there's probably no use keeping the corrupt file

์šฐ๋ฆฌ๋Š” ์˜ค๋ฅ˜๋ฅผ ํฌ์ฐฉํ•˜๊ณ  ์ด๋ฅผ jupyter/nbformat#32์—์„œ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ชจ๋“  ์ „์ž ํ•„๊ธฐ์žฅ์„ ๋‹ค์‹œ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ผ๋ถ€ ํ’๋ถ€ํ•œ ์ถœ๋ ฅ์ด ํ‘œ์‹œ๋˜๊ธฐ ์ „์— ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ ๋ฉ”๋‰ด์—์„œ ์ˆ˜๋™์œผ๋กœ ์‹ ๋ขฐํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ๋Š” ๋‹ค์Œ์œผ๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

rm ~/Library/Jupyter/nbsignatures.db

๊ฐ์‚ฌ ํ•ด์š”

~/.ipython/profile_default/history_sqlite ์ œ๊ฑฐ

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.

@KnightOfTheMoonlight ํŒŒ์ผ ์ด๋ฆ„์ด "history_sqlite"๊ฐ€ ์•„๋‹Œ "history.sqlite"๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—… ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค!!!
์„œ๋ฒ„์— ๊ณต๊ฐ„์ด ์—†์„ ๋•Œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

@takluyver ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๊ท€ํ•˜์˜ ์ œ์•ˆ์ด ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

์ž‘์—… ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค!!!
์„œ๋ฒ„์— ๊ณต๊ฐ„์ด ์—†์„ ๋•Œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜์˜ ๋ฌธ์ œ์ด๊ธฐ๋„ ํ–ˆ๋‹ค. ํŒ ๊ณ ๋งˆ์›Œ! ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค!

๋จผ์ € ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
sudo jupyter notebook --allow-root

๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋ถ€ URL์ด ํ„ฐ๋ฏธ๋„์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

http://localhost:8888/?token=f2704ecba4c88716337f33e79e13335380e25382603afb80

๋งˆ์ง€๋ง‰์œผ๋กœ ์ด URL์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์˜ ์ƒˆ ํƒญ์— ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด jupyter ๋…ธํŠธ๋ถ์ด ์ƒˆ ํƒญ์—์„œ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

๊ฑด๋ฐฐ!

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