Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error 'Session cannot generate requests' #104

Closed
4 tasks done
aplaza2 opened this issue Sep 14, 2021 · 12 comments
Closed
4 tasks done

Error 'Session cannot generate requests' #104

aplaza2 opened this issue Sep 14, 2021 · 12 comments
Assignees
Labels

Comments

@aplaza2
Copy link

aplaza2 commented Sep 14, 2021

Hola, me ha pasado en algunas ocasiones que cuando trato de correr algún código me sale el error 'Session cannot generate requests', pero no logro entenderlo. No comprendo qué lo dispara e incluso hay veces que se me arregla solo. ¿Me podrían explicar el por qué salta y cómo arreglar este error?

PD: Utilizo vs code. No sé si tenga algo que ver, pero prefiero mencionarlo.

@Crisax234
Copy link

Me pasa exactamente lo mismo y se me arregla cuando quiere como se puede solucionar?

@pepinofdz
Copy link

+1
estaba haciendo los ejercicios propuestos de la semana 4, llegué al 2.3 y ahora no me funciona ni siquiera un print('a')

@fernandosmither
Copy link
Member

¿Cómo estás corriendo el código? de casualidad te funciona si manualmente en la terminal escribes python {modulo}.py?

@fernandosmither fernandosmither self-assigned this Sep 17, 2021
@fernandosmither fernandosmither added administrativa setup VSC Visual Studio Code related questions and removed administrativa labels Sep 17, 2021
@aplaza2
Copy link
Author

aplaza2 commented Sep 18, 2021

Pero al hacer eso se van a correr todas las celdas de código? Porque por ejemplo en las actividades propuestas en un mismo archivo hay varias celdas de código

@fernandosmither
Copy link
Member

fernandosmither commented Sep 18, 2021

Pero al hacer eso se van a correr todas las celdas de código? Porque por ejemplo en las actividades propuestas en un mismo archivo hay varias celdas de código

Ah ya veo, te refieres a que tienes problemas ejecutando líneas de código de un Jupyter Notebook usando VSC?

En ese caso, te recomendaría correr directamente los jupyter notebooks utilizando el laucher oficial de jupyter-lab https://jupyter.org/install

De hecho, lifehack: Para mayor facilidad, puedes instalar NBOPEN para hacer doble click sobre un jupyter notebook y abrirlo directamente sin tener que usar la terminal. https://github.com/takluyver/nbopen para más info.

Sin embargo, si por alguna razón sigues prefiriendo utilizarlo en VSC, necesitaría tener alguna captura de pantalla completa de tu VSC con el error, o preferiblemente los pasos para replicar el error. De todas formas lo comentaré a los demás ayudantes a ver si a alguien le ha pasado esto.

@aplaza2
Copy link
Author

aplaza2 commented Sep 19, 2021

Agradezco el consejo de los jupyter notebooks, pero igual me gustaría tratar de averiguar sobre el error y de cómo solucionarlo. Un ejercicio donde siempre me salta es en el ejercicio propuesto 2.3 defaultdicts de la semana 4, donde al momento de presionar el triángulo superior izquierdo de la celda para correr el código (el equivalente a hacer Ctrl+Alt+Enter) me sale este error y luego cualquier otra celda que trate de correr le salta este mismo error. Pero si no activo este ejercicio, todos los otros ejercicios corren sin problema

image

@fernandosmither
Copy link
Member

Agradezco el consejo de los jupyter notebooks, pero igual me gustaría tratar de averiguar sobre el error y de cómo solucionarlo. Un ejercicio donde siempre me salta es en el ejercicio propuesto 2.3 defaultdicts de la semana 4, donde al momento de presionar el triángulo superior izquierdo de la celda para correr el código (el equivalente a hacer Ctrl+Alt+Enter) me sale este error y luego cualquier otra celda que trate de correr le salta este mismo error. Pero si no activo este ejercicio, todos los otros ejercicios corren sin problema

Curioso, a mí al correrlo me tira simplemente el KeyError que Tomate no está en las frutas creadas:

image

El cual se puede arreglar dejando solo frutas que existen:

image

Código:
from random import randint


class MiDefaultDict(dict):
    
    def __init__(self, funcion_default=None, *args):
        super().__init__()
        self.funcion_default = funcion_default
        self.args = args
        
    def __getitem__(self, llave):
        # Este método se llama implicitamente al usar objeto[llave].
        # Pista: Para guardar un par llave-valor dentro del diccionario,
        # utiliza: self[llave] = valor
        
        # Utiliza aquí un bloque try/except, y maneja la excepción correspondiente
        # Recuerda usar funcion_default y args para determinar el nuevo valor!
        return super().__getitem__(llave)


# Crea la instancia del diccionario
rating_frutas = MiDefaultDict(randint, 0, 10)

# Agrega valores al diccionario
rating_frutas.update({
    "Manzana": 3,
    "Plátano": 7,
    "Arándanos": 6,
    "Pera": 3,
    "Sandía": 4,
    "Durazno": 5,
})

lista_de_frutas = ["Arándanos", "Sandía", "Pera"]

for fruta in lista_de_frutas:
    print(f"{fruta} tiene un rating de {rating_frutas[fruta]}/10!")

Lo que me hace pensar

  • Será que cualquier excepción lanzada en tu jupyter provoca ese error?

Un checklist un poco obvio pero que quizás sirva

  • ¿Seleccionaste una versión de python que te esté funcionando, cuando vscode te pide "select interpreter"?
    • Puedes cambiar el interpreter con ctrl + shift + p > Python: Select Interpreter
  • Tienes la extensión de Jupyter correctamente instalada? (Ve si reinstalándola se arregla)
  • Te aparece Jupyter Server: Local?
    image
  • Te ocurre el mismo error cuando intentas correr esa celda desde el launcher de jupyter-lab?

Espero tus respuestas así podemos buscar una solución en conjunto, mientras no aparezca alguien que sepa exactamente qué es. Saludos! 😄

@carmebe
Copy link

carmebe commented Sep 20, 2021

Hola, a mi también me había aparecido este error mientras intentaba hacer el ejercicio, seguido por un "Kernel is dead". Si pones ese código en un entorno solamente de Python, verás que te entrega un error de recursión (el jupyter notebook se cuelga con un error de este tipo)

Espero que te haya servido, saludos!

@aplaza2
Copy link
Author

aplaza2 commented Sep 20, 2021

Hola, me puse a revisar lo que me dijeron y llegué a lo siguiente:

  • La versión de Python es funcional y está activada
  • La extensión de Jupyter está correctamente instalada
  • Sí aparece Jupyter Server: local

Eso sí, revisando particularmente el ejemplo (2.3 semana 4) descubrí que lo que dispara el error es una línea donde hago:

valor = self.[llave]
(recordando que estamos definiendo el método getitem(llave) de una librería que estamos definiendo)

Traté de pensar este error con lo del error de recursión, pero no llego a una conclusión. Además, si fuera solo un error en la celda tampoco entendería por qué cuando aparece luego me sale este mismo error en cualquier otra celda. Ojalá con la info nueva sea más claro para alguien qué está sucediendo y por qué se dispara el error.

@carmebe
Copy link

carmebe commented Sep 20, 2021

Si intentas usar self[llave] dentro del método __getitem__ de la clase heredada de dict, estas haciendo recursión, ya que son lo mismo, en ese caso no deberías trabajar con la clase tal cual, sino con la superclase. Y reitero, jupyter se cuelga a nivel global si se encuentra un error de recursión, es decir, deberás reiniciar el kernel cada vez que suceda.

@fernandosmither
Copy link
Member

Hola, me puse a revisar lo que me dijeron y llegué a lo siguiente:

  • La versión de Python es funcional y está activada
  • La extensión de Jupyter está correctamente instalada
  • Sí aparece Jupyter Server: local

Eso sí, revisando particularmente el ejemplo (2.3 semana 4) descubrí que lo que dispara el error es una línea donde hago:

valor = self.[llave]
(recordando que estamos definiendo el método getitem(llave) de una librería que estamos definiendo)

Traté de pensar este error con lo del error de recursión, pero no llego a una conclusión. Además, si fuera solo un error en la celda tampoco entendería por qué cuando aparece luego me sale este mismo error en cualquier otra celda. Ojalá con la info nueva sea más claro para alguien qué está sucediendo y por qué se dispara el error.

Avísame si la respuesta de @carmebe te hizo sentido. En particular podrías revisar si es la recursión lo que causa este error en particular corriendo por ejemplo:

def dormammu(func):
    return func(func)
dormammu(dormammu)

El kernel también se muere cuando abrimos y cerramos interfaces gráficas.

import sys
from PyQt5.QtWidgets import QWidget, QApplication

class MiVentana(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(200, 100, 300, 300)
        self.setWindowTitle('Mi Primera Ventana')


if __name__ == '__main__':
    app = QApplication([])
    ventana = MiVentana()
    ventana.show()
    sys.exit(app.exec_())

De hecho, logré replicar tu error al matar el kernel con el código de arriba. Namely,
image

Ya que esto te sucederá tanto en vscode como en el laucher oficial, te recomendaría practicar en archivos .py y no en jupyter notebooks, para este tipo de cosas. Avísame si te quedó alguna duda!

@aplaza2
Copy link
Author

aplaza2 commented Sep 20, 2021

Revisé los ejercicios donde ocurría ese error y con lo que dijo @carmebe quede claro y pude arreglarlo. Realmente muchas gracias por la ayuda y tendré en cuenta este error para las recursiones y las interfaces gráficas (además de trabajar en archivos.py).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants