目前我正在开发一个包含子模块并使用numpy/scipy的python项目.Ipython用作交互式控制台.不幸的是,我对我现在使用的工作流程不是很满意,我将不胜感激.
在IPython中,框架由一个简单的import命令加载.但是,通常需要更改框架的一个子模块中的代码.此时已经加载了一个模型,我使用IPython与它进行交互.
现在,框架包含许多相互依赖的模块,即在最初加载框架时,主模块正在导入和配置子模块.只有在使用重新加载模块时才会执行对代码的更改reload(main_mod.sub_mod).这很麻烦,因为我需要使用完整路径单独重新加载所有已更改的模块.如果reload(main_module)还要重新加载所有子模块,但没有重新加载numpy/scipy 将是非常方便的..
有没有办法让IPython自动重新加载所有更改的代码?在每个行在shell中执行之前,或者在特别请求它时失败.我正在使用IPython和SciPy进行大量的探索性编程,每当我更改它时,必须手动重新加载每个模块是非常痛苦的.
我跑ipython qtconsole.我想执行一个我在编辑器中单独编辑的文件.当我在编辑器中对文件进行更改并使用以下命令在IPython中重新运行它时:
%run myfile.py
Run Code Online (Sandbox Code Playgroud)
代码未更新.但是,如果我ipython从终端正常运行,那么这很好.我试着autoreload在QT控制台中使用:
%load_ext autoreload
%autoreload
Run Code Online (Sandbox Code Playgroud)
但它并没有解决问题.这有什么不对?
我是IPython Notebook的新手.我在CrunchBang(华尔道夫)上使用Anaconda发行版.我的开发周期如下:
1. Open Spyder.
2. Open the .py file if not already loaded
3. Start IPython Notebook
4. Open the specific notebook from the main IPython screen
5. Select Cell/Run All
6. Note errors. If none goto step 11.
7. Save and close the notebook
8. Shutdown the notebook from main IPython screen
9. Correct errors in Spyder and save
10. go to step 4
11. Move on to the next part of the project and start the process …Run Code Online (Sandbox Code Playgroud)