Rechargement dans l'interpréteur Python

$ python
>>> import myapp
>>> reload(myapp)
<module 'myapp' from 'myapp.pyc'>
>>>

ctrl+D

$ python
>>> from myapp import *
>>> reload(myapp)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'myapp' is not defined

Pourquoi il se comporte différemment? Comment puis-je recharger lors de l'utilisation de from myapp import *?

La raison que j'utilise reload() est parce que j'ai changer le code source du module et de le tester et la raison que j'utilise à partir de myapp import est parce qu'il me permet de gagner de la frappe.
reload est pour être utilisé avec un beaucoup de prudence. Il se comporte d'inattendu dans de nombreux égards, le pire est que les classes existent dans de nombreuses versions à l'intérieur de la VM, selon si vous avez de vieilles instances de reloaded classes de traîner. reload a été retiré de Python 3 pour cette raison. Souvent, il est beaucoup plus facile à mettre en place un petit script de configuration de tous les modules dont vous avez besoin, puis déposez-les dans un shell à l'aide de import code; code.interact(local=locals()). L'interpréteur Python démarre très vite, donc ce n'est généralement encore plus rapide, puis la recherche de reload dans la readline l'histoire.
Merci pour les conseils, mais je ne peux pas imaginer ce sans exemple. Si c'est possible, et vous avez le temps d'écrire plus à ce sujet, s'il vous plaît mettre quelques exemple d'une réponse. Ou je peux créer une nouvelle question en fonction de votre commentaire, si vous n'êtes pas contre elle.
Je voulais dire quelque chose comme pastie.org/3844991. Au lieu d'avoir une coque ouverte et essayer de recharger des trucs (qui ne peut pas fonctionner correctement), vous pouvez simplement recharger la coque entière à partir de zéro à l'aide de ce script. Cela a aussi l'avantage de forcer explicitement d'installation le contexte que vous souhaitez tester, de sorte que vous pouvez reproduire tout ce que vous faites et ont la possibilité de transformer cela en une unité de test facilement plus tard.
Merci beaucoup, très bonne idée.

OriginalL'auteur xralf | 2012-05-01