一些背景知识:我正在使用R + RStudio转换所有数据分析任务,尝试使用Python(大多数是pandas)+ Eclipse和PyDev。由于RStudio,我习惯于一个工作流程,包括编写一些代码,测试我不确定的部分,通过chunk运行它,我需要做任何修复,然后再继续。 RStudio真的很方便(实际上,可能训练了我)这样做,因为我没有任何正式的CS培训,这就是我现在的想法。
我有两个问题(一个是实用的,另一个是哲学的):
1.。)如何让Eclipse + PyDev中的交互式控制台识别较大脚本中的变量?我知道ctrl + alt + enter会调出交互式控制台,但是一旦我回到我的脚本中修补它,我就无法停留它,它也无法识别之前运行的任何内容。因此,如果我想测试我在特定数据列上定义的函数的使用,我必须将函数复制/粘贴到控制台(以及任何依赖项,如导入模块)。
2。)Python用户使用什么工作流程?我觉得这种对手动猜测和检查测试的依赖并不是实际编程的人所做的,我想转换到更好的实践。但到目前为止,我发现在进行更改后从头开始重新运行整个脚本是一种浪费,当我宁愿磨练我正在积极研究的部分时。
答案 0 :(得分:2)
按Ctrl + Alt + Enter后,您应该能够:
按Ctrl + Alt + Enter在控制台上执行整个文件,以便您可以使用其功能。
将光标放在任意一行,然后按F2,使其在控制台上执行该行,然后转到下一行(因此,您可以按F2键执行一行代码之后)。
请注意,如果您需要,如果选中“将控制台连接到调试会话”,您可能会看到shell中的局部变量?'在首选项> pydev>交互式控制台页面。
现在,这是一种使用慢速数据进行探索性测试的合理方法(通常会加载数据速度慢并使用内存中的数据进行更改),但对于速度快的代码,我建议创建测试用例然后运行那些测试(我建议使用pytest:http://pytest.org,但是unittest也可以工作)...在这种情况下,你也可以为子孙后代存储测试,你可以重新运行以确保你没有破坏任何东西随着你的代码的发展。
请注意,如果您决定使用pytest,则必须转到首选项> PyDev> PyUnit并将测试运行器设置为PyTest。请注意,PyDev可以非常简单地运行您想要的测试(您可以在测试文件中使用Ctrl + Shift +向上/向下选择测试方法,然后使用Ctrl + F9运行它...如果您需要,您可以使用Ctrl + F11稍后重新运行或F11使用断点对其进行调试,前提是您配置"始终启动先前启动的应用程序"如http://www.pydev.org/manual_101_run.html中所述。)