So schreiben Sie asynchronen Python-Code, der sowohl als Skript als auch in Jupyter funktioniertPython

Python-Programme
Anonymous
 So schreiben Sie asynchronen Python-Code, der sowohl als Skript als auch in Jupyter funktioniert

Post by Anonymous »

Ich entwickle eine Python-Bibliothek, die Asyncio verwendet. Wenn es als normales Python-Skript ausgeführt wird, funktioniert alles wie erwartet.
Die gleiche Bibliothek wird jedoch auch in Jupyter-Notebooks verwendet, wo sie mit Folgendem fehlschlägt:

Code: Select all

RuntimeError: asyncio.run() cannot be called from a running event loop
Dies geschieht, weil Jupyter bereits eine eigene Ereignisschleife ausführt.
Ich suche nach einer Möglichkeit, meinen Code so zu strukturieren oder anzupassen, dass er in beiden Kontexten funktioniert:
  • als normales Python-Skript
  • in einem Jupyter-Notebook
Einschränkungen:
  • Die asynchrone API direkt für Benutzer zugänglich machen. Ich habe es versucht, aber es stellte sich heraus, dass es für weniger technische Kollegen zu verwirrend war.
  • Nest-asyncio verwenden.
Was ist das empfohlene Muster für den Umgang mit dieser Situation in einer Bibliothek? Wie kann ich die Ereignisschleife sicher verwalten, ohne Benutzer dazu zu zwingen, über Asyncio nachzudenken?
Vielen Dank im Voraus!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post