Enregistrer la session dans IPython comme dans MATLAB?
il serait utile de sauvegarder les variables de session qui pourraient être chargées facilement dans la mémoire à un stade ultérieur.
5 réponses
In [23]: %logstart /tmp/session.log
Activating auto-logging. Current session state plus future input saved.
Filename : /tmp/session.log
Mode : backup
Output logging : False
Raw input log : False
Timestamping : False
State : active
In [24]: x = 1
In [25]: %logstop
In [26]: quit()
Do you really want to exit ([y]/n)? y
Ensuite, nous pouvons restaurer la session:
% ipython -log /tmp/session.log
Activating auto-logging. Current session state plus future input saved.
Filename : ipython_log.py
...
In [1]: x
Out[1]: 1
pour plus d'informations sur "Session logging and restoring" voir la documentation.
notez que cela stocke simplement le commandes dirigé par IPython. Il n'enregistre pas le état de la IPython session. Restaurer la session nécessite la ré-exécution de commande.
Si vous définissez PYTHONSTARTUP variable d'environnement pour pointer vers un fichier appelé, disons, startup.py
:
PYTHONSTARTUP=/path/to/startup.py
alors mettez ce qui suit dans /path/to/startup.py:
try:
# https://stackoverflow.com/a/5377051/190597 (Tom Dunham)
__IPYTHON__
except NameError:
pass
else:
# https://stackoverflow.com/a/15898875/190597 (user2261139)
from IPython import get_ipython
ipython = get_ipython()
ipython.magic("%logstart /tmp/session.log")
alors IPython appellera %logstart automatiquement chaque fois que vous démarrez une session interactive.
A la recherche de quelque chose de semblable je suis tombé sur save_ipython_variables:
save-ipython-variables
vous permet de ... enregistrer vos IPython variables à disque facilement, et les charger de nouveau dans le global namespace lorsque vous en avez besoin à nouveau, même dans un tout nouveau IPython session.
je n'ai pas eu beaucoup de chance de l'utiliser encore, mais semble prometteur.
Je n'ai pas encore essayé, mais à partir de la réponse D'AE Drew, j'ai trouvé une alternative possible. On dirait Qu'IPython a une commande magique intégrée qui fait ceci appelé %magasin:
%stocker la magie pour la persistance légère. Stocke les variables, les Alias et les macros dans la base de données D'IPython. Pour restaurer automatiquement les variables stockées au démarrage, ajoutez ceci à votre ipython_config.py fichier:
c.StoreMagic.autorestore = True
Il y a aussi une magie de commande, history
, qui peut être utilisé pour écrire toutes les commandes/les informations fournies par l'utilisateur.
Syntaxe : %history -f file_name
.
Aussi %save file_name start_line-end_line
, où star_line est le numéro de ligne de départ et end_line est le numéro de ligne de fin. Utile en cas d'sélective enregistrer.
%run
peut être utilisé pour exécuter les commandes dans le fichier enregistré
ce n'est Pas ma solution, mais ce qui semble être le plus proche de la solution, si vous utilisez ipython: https://stackoverflow.com/a/28552465/4752883