3
votes

Jupyter comment exécuter des cellules en arrière-plan?

Habituellement, si la connexion réseau est perdue ou si le navigateur Web est fermé pendant que les cellules fonctionnent, je dois réexécuter les cellules depuis le début.

Pour gérer cela, j'ai converti .ipynb en .py et utilisé 'nohup python .py'

Existe-t-il un moyen d'empêcher l'exécution des cellules de s'arrêter comme rien?

Merci d'avance.


1 commentaires

Avez-vous essayé d'exécuter votre processus sur un fil différent?


4 Réponses :


0
votes

Pour mon cas:

jupyter --version
4.4.0
jupyter notebook --version
5.7.4

Je lance un notebook jupyter sur un serveur et je me connecte à celui-ci en utilisant mon ordinateur portable. Même si la connexion est perdue ou si le navigateur est fermé, les cellules en cours d'exécution ne seront pas arrêtées. Le processus de téléchargement de fichiers exécuté dans le terminal ne sera pas non plus influencé.

Puis-je en savoir plus sur votre situation?

Par exemple, quelle version utilisez-vous et où exécutez-vous votre notebook jupyter, en local ou sur un serveur?


0 commentaires

4
votes

Vous pouvez démarrer votre processus dans un autre fil de discussion.

def network_call():
    # Do something here

threading.Thread(target=network_call).start()

move_ahead()


0 commentaires


0
votes

le code fonctionne toujours, seule la sortie / erreur standard est perdue. par exemple, si j'ai une cellule contenant:

{1: 42}

et que j'enregistre le bloc-notes, exécutez cette cellule, fermez l'onglet du navigateur, attendez 5 secondes, puis rouvrez l'onglet, je peux exécuter:

Out

(c'est la variable où aboutissent les résultats de l'exécution des cellules) Je vois:

from time import sleep
sleep(5)
42

ie le code s'est terminé


0 commentaires