Ipython: error de bloqueo

Creado en 20 ene. 2021  ·  4Comentarios  ·  Fuente: ipython/ipython

En [3]: nn.relu
Rastreo (llamadas recientes más última):
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py", línea 113, en get_completions
rendimiento de self._get_completions(cuerpo, desplazamiento, posición_cursor, self.ipy_completer)
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py", línea 129, en _get_completions
para c en terminaciones:
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", línea 438, en _deduplicate_completions
finalizaciones = lista(finalizaciones)
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", línea 1818, en terminaciones
para c en self._completions(text, offset, _timeout=self.jedi_compute_type_timeout/1000):
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", línea 1862, en _completions
texto_completo=texto_completo, línea_cursor=línea_cursor, posición_cursor=columna_cursor)
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", línea 2030, en _complete
cursor_pos, cursor_line, texto_completo)
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/core/completer.py", línea 1374, en _jedi_matches
texto[:desplazamiento], espacios de nombres, columna=columna_cursor, línea=línea_cursor + 1)
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/jedi/api/__init__.py", línea 726, en __init__
proyecto=Proyecto(Ruta.cwd()), **kwds)
TypeError: __init__() obtuvo un argumento de palabra clave inesperado 'columna'

Durante el manejo de la excepción anterior, ocurrió otra excepción:

Rastreo (llamadas recientes más última):
Archivo "/home/hcl/miniconda3/envs/pytorch/bin/ipython", línea 8, en
sys.exit(inicio_ipython())
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/__init__.py", línea 126, en start_ipython
devuelve launch_new_instance(argv=argv, *kwargs)Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/traitlets/config/application.py", línea 845, en launch_instanceaplicación.inicio()Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ipapp.py", línea 356, en inicioself.shell.mainloop()Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/interactiveshell.py", línea 564, en mainloopself.interactuar()Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/interactiveshell.py", línea 547, en interactuarcódigo = self.prompt_for_code()Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/interactiveshell.py", línea 475, en prompt_for_code* self._extra_prompt_options())
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/shortcuts/prompt.py", línea 1013, en aviso
volver self.app.run(set_exception_handler=set_exception_handler)
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py", línea 817, en ejecución
self.run_async(pre_run=pre_run, set_exception_handler=set_exception_handler)
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/asyncio/base_events.py", línea 584, en run_until_complete
volver futuro.resultado()
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py", línea 783, en run_async
volver esperar _run_async2()
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py", línea 771, en _run_async2
esperar self.cancel_and_wait_for_background_tasks()
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/application/application.py", línea 872, en cancel_and_wait_for_background_tasks
esperar tarea
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/buffer.py", línea 1854, en new_coroutine
esperar corotina ( a, * kw)
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/buffer.py", línea 1684, en async_completer
documento, complete_event
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/completion/base.py", línea 270, en get_completions_async
documento, complete_event
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/prompt_toolkit/completion/base.py", línea 196, en get_completions_async
para elemento en self.get_completions(document, complete_event):
Archivo "/home/hcl/miniconda3/envs/pytorch/lib/python3.7/site-packages/IPython/terminal/ptutils.py", línea 116, en get_completions
exc_tipo, exc_valor, exc_tb = sys.exc_info()
NameError: el nombre 'sys' no está definido

Si sospecha que se trata de un error de IPython 7.19.0, infórmelo en:
https://github.com/ipython/ipython/problemas
o envíe un correo electrónico a la lista de correo a [email protected]

Puede imprimir un rastreo más detallado ahora mismo con "%tb" o usar "%debug"
para depurarlo interactivamente.

Se pueden habilitar rastreos extra detallados para fines de informe de errores a través de:
%config Application.verbose_crash=Verdadero

Comentario más útil

Lectura del rastreo:

  1. Faltan las importaciones sys y traceback en IPython/terminal/ptutils.py , y este es el problema que causa el bloqueo de Ipython;
  2. En jedi/api/__init__.py , se queja de que el argumento "columna" se pasa a Script.__init__ , que no acepta dicho argumento;
  3. Este error proviene de IPython/core/completer.py , donde en la línea 1373 se crea un nuevo jedi.Interpreter , pasándole un argumento de "columna", que lo bloquea.

La forma de crear un objeto Script ha cambiado entre jedi 0.17 y jedi 0.18:
En 0.17:

     def __init__(self, code=None, line=None, column=None, path=None,                                    
                 encoding=None, sys_path=None, environment=None,                                               
                 project=None, source=None):

en 0.18:

    def __init__(self, code=None, *, path=None, environment=None, project=None):

Si instala jedi 0.17 en lugar de jedi 0.18, la versión actual de ipython debería funcionar.
Esto funcionó para mí:

pip uninstall jedi
pip install jedi==0.17.2

Todos 4 comentarios

La raíz de este problema no se debe a ipython. En realidad, proviene del paquete jedi . Pero ipython también tiene un error relacionado con esto. sys módulo no importado en excepción get_completions .

Los módulos sys y traceback se agregaron hace 7 meses pero no se actualizaron en pypi. Debido a esto, este error no está relacionado con ipython. Es un error en jedi .

¿Podría proporcionar información más detallada sobre por qué esto es un problema en jedi ?
La última versión de ipython en PyPI es 7.19.0, que contiene la importación faltante que, como ya notó, se corrigió en el maestro pero no se lanzó.
https://github.com/ipython/ipython/blob/7.19.0/IPython/terminal/ptutils.py

Sin importación de sys
https://github.com/ipython/ipython/blob/223e783c447a773a497809646ca0d874ea10ceeb/IPython/terminal/ptutils.py#L20 -L24

Uso de sys
https://github.com/ipython/ipython/blob/223e783c447a773a497809646ca0d874ea10ceeb/IPython/terminal/ptutils.py#L116

Lectura del rastreo:

  1. Faltan las importaciones sys y traceback en IPython/terminal/ptutils.py , y este es el problema que causa el bloqueo de Ipython;
  2. En jedi/api/__init__.py , se queja de que el argumento "columna" se pasa a Script.__init__ , que no acepta dicho argumento;
  3. Este error proviene de IPython/core/completer.py , donde en la línea 1373 se crea un nuevo jedi.Interpreter , pasándole un argumento de "columna", que lo bloquea.

La forma de crear un objeto Script ha cambiado entre jedi 0.17 y jedi 0.18:
En 0.17:

     def __init__(self, code=None, line=None, column=None, path=None,                                    
                 encoding=None, sys_path=None, environment=None,                                               
                 project=None, source=None):

en 0.18:

    def __init__(self, code=None, *, path=None, environment=None, project=None):

Si instala jedi 0.17 en lugar de jedi 0.18, la versión actual de ipython debería funcionar.
Esto funcionó para mí:

pip uninstall jedi
pip install jedi==0.17.2
¿Fue útil esta página
0 / 5 - 0 calificaciones