我正在研究跨越多个文件和目录的python项目。这是我的工作流程:
显然,这个工作流程非常低效,因为大量代码(在错误功能之前运行)会被重新执行。理想的是在ipython中运行程序,在发现问题并进行必要的更改后,从错误的函数执行开始的地方重新启动,而不是从头开始。我不确定如何实现这一点,任何帮助将不胜感激。
我知道如何从ipython历史记录中重新运行行(%rerun)以及如何确保ipython中已更改文件的自动加载,但在这种情况下,我无法在ipython中输入代码行。编写单元测试可能并不总是可行,因此我需要一个替代解决方案。我的用例类似于设置"断点"然后多次重复执行超过断点的代码,以避免在断点之前多次重复执行代码,同时确保正确填充所有必要的变量(直到该阶段)。最后一个条件是我可能无法使用IDE,而vim是我工作的所有环境中唯一可用的编辑器。
答案 0 :(得分:0)
您可以开始为每个函数编写测试用例,并尝试单独调试每个函数,而不是整个程序/脚本。
有一个python unittest-module:https://docs.python.org/3.4/library/unittest.html和许多教程(仅举例):http://docs.python-guide.org/en/latest/writing/tests/
编写测试似乎很烦人,但考虑测试用例可以更深入地理解"如果..."该功能应如何表现。
答案 1 :(得分:0)
您可以使用代码模块在代码中包含“断点”
import code
# ... later in your program add
code.interact(local=locals()) # enter python interpreter at this point (ctrl+D to continue execution)