Ipython: ошибка сбоя

Созданный на 20 янв. 2021  ·  4Комментарии  ·  Источник: ipython/ipython

В [3]: nn.relu
Traceback (последний последний вызов):
Файл "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py", строка 113, в get_completions
выход из self._get_completions (тело, смещение, 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, завершение
для c в self._completions(текст, смещение, _timeout=self.jedi_compute_type_timeout/1000):
Файл "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", строка 1862, в _completions
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
курсор_поз, курсор_строка, полный_текст)
Файл "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", строка 1374, в _jedi_matches
текст[:смещение], пространства имен, столбец=курсор_столбец, строка=курсор_строка + 1)
Файл "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/jedi/api/__init__.py", строка 726, в __init__
проект=Проект(Путь.cwd()), **kwds)
TypeError: __init__() получил неожиданный аргумент ключевого слова «столбец»

Во время обработки вышеупомянутого исключения произошло другое исключение:

Traceback (последний последний вызов):
Файл "/home/hcl/miniconda3/envs/pytorch/bin/ipython", строка 8, в
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)Файл "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/traitlets/config/application.py", строка 845, в launch_instanceприложение.старт()Файл "/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, в mainloopсамо.взаимодействовать()Файл "/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)
Файл "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/asyncio/base_events.py", строка 584, в run_until_complete
вернуть будущее.результат()
Файл "/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", строка 196, в get_completions_async
для элемента в self.get_completions(document, complete_event):
Файл "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py", строка 116, в get_completions
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=Истина

Самый полезный комментарий

Чтение трассировки:

  1. Импорт sys и traceback отсутствует в IPython/terminal/ptutils.py , и это проблема, которая вызывает сбой Ipython;
  2. В jedi/api/__init__.py он жалуется, что аргумент «столбец» передается в Script.__init__ , который не принимает такой аргумент;
  3. Эта ошибка возникает из- 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.17 вместо jedi 0.18, текущая версия ipython должна работать.
Это сработало для меня:

pip uninstall jedi
pip install jedi==0.17.2

Все 4 Комментарий

Корень этой проблемы не из-за ipython. На самом деле из пакета jedi . Но у ipython также есть ошибка, связанная с этим. Модуль sys не импортирован в исключении get_completions .

Модули sys и traceback добавлены 7 месяцев назад, но не обновлены в pypi. Из-за этого эта ошибка не связана с ipython. Это ошибка в jedi .

Не могли бы вы дать более подробную информацию о том, почему это проблема в jedi ?
Последний выпуск ipython в PyPI — 7.19.0, который содержит отсутствующий импорт, который, как вы уже заметили, исправлен на мастере, но не выпущен.
https://github.com/ipython/ipython/blob/7.19.0/IPython/терминал/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

Чтение трассировки:

  1. Импорт sys и traceback отсутствует в IPython/terminal/ptutils.py , и это проблема, которая вызывает сбой Ipython;
  2. В jedi/api/__init__.py он жалуется, что аргумент «столбец» передается в Script.__init__ , который не принимает такой аргумент;
  3. Эта ошибка возникает из- 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.17 вместо jedi 0.18, текущая версия ipython должна работать.
Это сработало для меня:

pip uninstall jedi
pip install jedi==0.17.2
Была ли эта страница полезной?
0 / 5 - 0 рейтинги