Mettre à jour l'espace de noms IPython lors de l'exécution du script à partir de la ligne de commande

StackOverflow https://stackoverflow.com/questions/19842776

Question

Dans Ipython 0.10, il a été possible d'exécuter un script à partir de la ligne de commande, puis à partir du mode interactif, d'accéder immédiatement aux noms de l'espace de noms:

ipython -i some_script.py

%whos
    tom
    dick
    jane

J'utilise maintenant Python 3.3.2 et Ipython 1.1.0. Quelque part le long de la ligne, ce comportement a changé. Maintenant je comprends:

ipython3 -i some_script.py

%whos
    Interactive namespace empty

Je dois maintenant démarrer ipython, puis% exécutez le script pour faire conserver l'espace de noms:

ipython3 -i
%run some_script.py
%whos
    tom
    dick
    jane

Existe-t-il une option de ligne de commande ou une technique qui me donnera l'ancien comportement? J'ai essayé

ipython3 -i -c "%run some_script.py"

Mais cela ne fonctionne pas non plus.

Je sais, c'est une chose paresseuse, mais avoir un pas de moins accélère les tours de débogage.

Était-ce utile?

La solution

Republication comme une réponse: les noms sont en fait placés dans votre espace de noms interactif, mais les noms définis lorsque Ipython démarre sont cachés %whos, il est donc dit que l'espace de noms est vide, même si ce n'est pas le cas. Si vous essayez d'utiliser les noms, ils devraient fonctionner normalement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top