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.
Mettre à jour l'espace de noms IPython lors de l'exécution du script à partir de la ligne de commande
-
29-07-2022 - |
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.
La solution
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow