2013-05-28 37 views
0

說我有一個腳本,導入Python中的各種模塊。IPython 0.13:每次輸入命令時自動重新加載模塊?

import my_module 
from some_other_module import foo 
... 

然後我從IPython運行這個腳本。

說我更改了功能barmy_modulesome_other_modulefoo

假設我現在想交互式地從我的IPython會話中調用my_module.bar()foo()

  1. 是否有一種方法讓IPython在執行命令前調用命令時自動重新加載每個加載的模塊?
  2. 如果不是自動的,我怎樣才能在IPython中手動重新加載每個加載的模塊,而無需明確命名模塊?
  3. 最後,有沒有辦法在我的ipython_config.py(啓動文件)中設置我的IPython會話,以便它支持現成的這種功能?

回答

3

我建議使用%load_ext autoreload後跟%autoreload?以瞭解如何使用它。

你也可以看看InteractiveShellApp.extensionsInteractiveShellApp.extra_extension配置選項在啓動時擴展。

最後,你也可以在你的個人資料的IPython目錄添加一個.py文件($ ipython locate得到它),把它放在startup子文件夾,它會在啓動時被執行。

雖然有一個限制,C模塊不能重新加載。