IPython的替代方案,具有更好的自动重载

时间:2017-09-08 02:12:52

标签: python ipython

我在命令行中寻找替代IPython的方法来解决我对iPython的两个最大抱怨。

1)自动重载非常适合函数,但我希望它也能用于if name主语句,这样我就不必经常重新运行文件以捕获更改。

2)因为我必须在IPython中重新运行该文件以捕获所有更改,由于某些原因,有些时候在我对文件进行更改后它不会运行最新版本的文件。这种情况经常发生,我必须定期退出并重新进入IPython来解决这个问题。

寻找类似于IPython的替代命令行,或者也可以打开修复这些问题的任何IPython黑客!

1 个答案:

答案 0 :(得分:1)

根据代码运行的时间长短,您可能需要查看Codi(对于vim,但存在其他编辑器的类似插件),或者只使用watch python yourprogram.py的第二个窗口。它可能会满足您的需求。

这就是说autoreload可能是一个棘手的过程:你不能重新加载Python中的所有内容,而且IPython有很多保护措施,它不会故意重新加载以避免自己陷入困境(例如其中一个例子)最近添加的是Python 3.6 Enums)。因此,您可能无法完成某些您想要做的事情,或者受到隐藏选项的保护。没有特定的例子就很难说清楚。

虽然,%autoreload和reload没有很多用户,但bug报告很少。如果你有一个非工作代码的例子,我很确定IPython开发人员会很乐意得到一个错误报告,如果fixable很乐意指导你如何解决问题并提交PR。

还可以查看%run -i,它可以帮助您不必退出并重新进入IPython。