315 votes

Chargement automatique des modules dans IPython

Existe-t-il un moyen pour qu'IPython recharge automatiquement tout le code modifié? Soit avant que chaque ligne soit exécutée dans le shell, soit en cas d'échec lorsque cela est spécifiquement demandé. Je fais beaucoup de programmation exploratoire avec IPython et SciPy et il est très pénible de devoir recharger manuellement chaque module à chaque fois que je le modifie.

559voto

Andrew_1510 Points 2028

Pour la version 0.12 d’ipython :

Ensuite, votre module sera auto-reloaded par défaut. Il s’agit de la doc :

Il y a un truc : lorsque vous foget tout ce qui précède lorsque vous utilisez `` , essayez :

122voto

kara deniz Points 585

Comme mentionné ci-dessus, vous avez besoin de l' autoreload extension. Si vous souhaitez démarrer automatiquement chaque fois que vous lancez ipython, vous devez l'ajouter à l' ipython_config.py fichier de démarrage:

Il peut être nécessaire de générer le premier pas:

ipython profile create

Ensuite inclure ces lignes en ~/.ipython/profile_default/ipython_config.py:

c.InteractiveShellApp.exec_lines = []
c.InteractiveShellApp.exec_lines.append('%load_ext autoreload')
c.InteractiveShellApp.exec_lines.append('%autoreload 2')

Ainsi qu'une option d'avertissement dans le cas où vous avez besoin de prendre avantage de compilé le code Python en .pyc fichiers:

c.InteractiveShellApp.exec_lines.append('print "Warning: disable autoreload in ipython_config.py to improve performance." ')

edit: ci-dessus fonctionne avec la version 0.12.1 et 0,13

69voto

Mike McCabe Points 524

RÉVISÉE - s’il vous plaît voir de Andrew_1510 réponse ci-dessous, comme IPython a été actualisé.

...

C’était un peu difficile trouver une façon de s’y rendre depuis un rapport de bogue poussiéreux, mais :

Il est livré avec IPython maintenant !

... puis chaque fois que vous appelez `` , il va chercher la dernière version.

15voto

lowtech Points 430

Si vous ajoutez ipython_config.py dans ~/.ipython/profile_default dir avec des lignes comme ci-dessous puis fonctionnalité autoreload est chargée au démarrage ipython (testé sur 2.0.0) :

2voto

F.C. Points 3283

Ici, il est mis en œuvre dans le prolongement

http://Projects.scipy.org/IPython/IPython/ticket/154

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X