[3]์์: nn.relu
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
get_completions์ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py" ์ค 113 ํ์ผ
self._get_completions(body, offset, cursor_position, self.ipy_completer)์์ ์ฐ์ถ
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py", 129ํ, _get_completions
์๋ฃ ์ c์ ๊ฒฝ์ฐ:
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", 438ํ, _deduplicate_completions
์๋ฃ = ๋ชฉ๋ก(์๋ฃ)
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", 1818ํ, ์๋ฃ
self._completions(ํ
์คํธ, ์คํ์
, _timeout=self.jedi_compute_type_timeout/1000)์์ c์ ๊ฒฝ์ฐ:
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", ๋ผ์ธ 1862, _completions
full_text=full_text, cursor_line=cursor_line, cursor_pos=cursor_column)
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", ๋ผ์ธ 2030, _complete
cursor_pos, cursor_line, ์ ์ฒด ํ
์คํธ)
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", ๋ผ์ธ 1374, _jedi_matches
ํ
์คํธ[:์คํ์
], ๋ค์์คํ์ด์ค, ์ด=cursor_column, ํ=cursor_line + 1)
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/jedi/api/__init__.py", 726ํ, __init__
ํ๋ก์ ํธ=ํ๋ก์ ํธ(๊ฒฝ๋ก.cwd()), **kwds)
TypeError: __init__()์ ์๊ธฐ์น ์์ ํค์๋ ์ธ์ '์ด'์ด ์์ต๋๋ค.
์์ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋์ ๋ค๋ฅธ ์์ธ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ญ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง):
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/bin/ipython", 8ํ, in
sys.exit(start_ipython())
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/__init__.py", 126ํ, start_ipython
๋ฐํ launch_new_instance(argv=argv, *kwargs)launch_instance์ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/traitlets/config/application.py" ํ์ผ, 845ํ์ฑ ์์()ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ipapp.py", 356ํ, ์์ ์self.shell.mainloop()ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/interactiveshell.py", ๋ผ์ธ 564, ๋ฉ์ธ ๋ฃจํself.interact()ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/interactiveshell.py", 547ํ, ์ํธ์์ฉ์ฝ๋ = self.prompt_for_code()ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/interactiveshell.py", 475ํ, prompt_for_code* self._extra_prompt_options())
ํ๋กฌํํธ์์ ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/shortcuts/prompt.py", 1013ํ
๋ฐํ self.app.run(set_exception_handler=set_exception_handler)
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py", 817ํ, ์คํ ์ค
self.run_async(pre_run=pre_run, set_exception_handler=set_exception_handler)
run_until_complete์์ ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/asyncio/base_events.py", 584ํ
future.result()๋ฅผ ๋ฐํ
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py", 783ํ, run_async
๋ฐํ ๋๊ธฐ _run_async2()
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py", 771ํ, _run_async2
self.cancel_and_wait_for_background_tasks()๋ฅผ ๊ธฐ๋ค๋ฆฝ๋๋ค.
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py", ๋ผ์ธ 872, cancel_and_wait_for_background_tasks
์์
์ ๊ธฐ๋ค๋ฆฌ๋ค
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/buffer.py", ์ค 1854, new_coroutine
์ฝ๋ฃจํด( a, * kw)์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/buffer.py", ๋ผ์ธ 1684, async_completer
๋ฌธ์, complete_event
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/completion/base.py", 270ํ, get_completions_async
๋ฌธ์, complete_event
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/completion/base.py", get_completions_async์ 196ํ
self.get_completions(document, complete_event)์ ํญ๋ชฉ:
ํ์ผ "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py", get_completions์ 116ํ
exc_type, exc_value, exc_tb = sys.exc_info()
NameError: 'sys' ์ด๋ฆ์ด ์ ์๋์ง ์์์ต๋๋ค.
์ด๊ฒ์ด IPython 7.19.0 ๋ฒ๊ทธ๋ผ๊ณ ์์ฌ๋๋ ๊ฒฝ์ฐ ๋ค์์์ ๋ณด๊ณ ํ์ธ์.
https://github.com/ipython/ipython/issues
๋๋ [email protected] ์ ๋ฉ์ผ๋ง ๋ฆฌ์คํธ๋ก ์ด๋ฉ์ผ์ ๋ณด๋ด์ญ์์ค.
"%tb"๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์์ธํ ํธ๋ ์ด์ค๋ฐฑ์ ์ง๊ธ ์ธ์ํ๊ฑฐ๋ "%debug"๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ํ์์ผ๋ก ๋๋ฒ๊ทธํฉ๋๋ค.
๋ฒ๊ทธ ๋ณด๊ณ ๋ชฉ์ ์ ์ํ ์ถ๊ฐ ์ธ๋ถ ์ญ์ถ์ ์ ๋ค์์ ํตํด ํ์ฑํํ ์ ์์ต๋๋ค.
%config Application.verbose_crash=์ฐธ
์ด ๋ฌธ์ ์ ์์ธ์ ipython ๋๋ฌธ์ด ์๋๋๋ค. ์ค์ ๋ก jedi
ํจํค์ง์์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ipython์๋ ์ด์ ๊ด๋ จ๋ ์ค๋ฅ๊ฐ ์์ต๋๋ค. $# get_completions
sys
๋ชจ๋์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
sys
๋ฐ traceback
๋ชจ๋์ 7๊ฐ์ ์ ์ ์ถ๊ฐ๋์์ง๋ง pypi์์๋ ์
๋ฐ์ดํธ๋์ง ์์์ต๋๋ค. ์ด ๋๋ฌธ์ ์ด ์ค๋ฅ๋ ipython๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. jedi
์ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ด jedi
์ ๋ฌธ์ ์ธ ์ด์ ์ ๋ํด ์ข ๋ ์์ธํ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
PyPI์ ์ต์ ipython
๋ฆด๋ฆฌ์ค๋ ์ด๋ฏธ ์ธ๊ธํ๋ฏ์ด ๋ง์คํฐ์์ ์์ ๋์์ง๋ง ๋ฆด๋ฆฌ์ค๋์ง ์์ ๋๋ฝ๋ ๊ฐ์ ธ์ค๊ธฐ๊ฐ ํฌํจ๋ 7.19.0์
๋๋ค.
https://github.com/ipython/ipython/blob/7.19.0/IPython/terminal/ptutils.py
sys
์์
์์
https://github.com/ipython/ipython/blob/223e783c447a773a497809646ca0d874ea10ceeb/IPython/terminal/ptutils.py#L20 -L24
sys
์ ์ฌ์ฉ
https://github.com/ipython/ipython/blob/223e783c447a773a497809646ca0d874ea10ceeb/IPython/terminal/ptutils.py#L116
์ญ์ถ์ ์ฝ๊ธฐ:
sys
๋ฐ traceback
๊ฐ์ ธ์ค๊ธฐ๊ฐ IPython/terminal/ptutils.py
์์ ๋๋ฝ๋์์ผ๋ฉฐ ์ด๊ฒ์ด Ipython ์ถฉ๋์ ์ผ์ผํค๋ ๋ฌธ์ ์
๋๋ค.jedi/api/__init__.py
์์ "column" ์ธ์๊ฐ Script.__init__
์ ์ ๋ฌ๋์ด ์ด๋ฌํ ์ธ์๋ฅผ ํ์ฉํ์ง ์๋๋ค๊ณ ๋ถํํฉ๋๋ค.IPython/core/completer.py
์์ ๋ฐ์ํฉ๋๋ค. ์ฌ๊ธฐ์ 1373๋ฒ์งธ ์ค์ ์๋ก์ด jedi.Interpreter
๊ฐ ์์ฑ๋๊ณ "์ด" ์ธ์๊ฐ ์ ๋ฌ๋์ด ์ง์๋ฉ๋๋ค.Script
๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ด jedi 0.17๊ณผ jedi 0.18 ์ฌ์ด์์ ๋ณ๊ฒฝ๋์์ต๋๋ค.
0.17์์:
def __init__(self, code=None, line=None, column=None, path=None,
encoding=None, sys_path=None, environment=None,
project=None, source=None):
0.18์์:
def __init__(self, code=None, *, path=None, environment=None, project=None):
jedi 0.18 ๋์ jedi 0.17์ ์ค์นํ๋ฉด ํ์ฌ ๋ฒ์ ์ ipython์ด ์๋ํฉ๋๋ค.
์ด๊ฒ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
pip uninstall jedi
pip install jedi==0.17.2
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ญ์ถ์ ์ฝ๊ธฐ:
sys
๋ฐtraceback
๊ฐ์ ธ์ค๊ธฐ๊ฐIPython/terminal/ptutils.py
์์ ๋๋ฝ๋์์ผ๋ฉฐ ์ด๊ฒ์ด Ipython ์ถฉ๋์ ์ผ์ผํค๋ ๋ฌธ์ ์ ๋๋ค.jedi/api/__init__.py
์์ "column" ์ธ์๊ฐScript.__init__
์ ์ ๋ฌ๋์ด ์ด๋ฌํ ์ธ์๋ฅผ ํ์ฉํ์ง ์๋๋ค๊ณ ๋ถํํฉ๋๋ค.IPython/core/completer.py
์์ ๋ฐ์ํฉ๋๋ค. ์ฌ๊ธฐ์ 1373๋ฒ์งธ ์ค์ ์๋ก์ดjedi.Interpreter
๊ฐ ์์ฑ๋๊ณ "์ด" ์ธ์๊ฐ ์ ๋ฌ๋์ด ์ง์๋ฉ๋๋ค.Script
๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ด jedi 0.17๊ณผ jedi 0.18 ์ฌ์ด์์ ๋ณ๊ฒฝ๋์์ต๋๋ค.0.17์์:
0.18์์:
jedi 0.18 ๋์ jedi 0.17์ ์ค์นํ๋ฉด ํ์ฌ ๋ฒ์ ์ ipython์ด ์๋ํฉ๋๋ค.
์ด๊ฒ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.