【问题标题】:Pydev interactive IPython consoles freezes on Pandas dataframe completition?Pydev 交互式 IPython 控制台在 Pandas 数据帧完成时冻结?
【发布时间】:2014-06-25 14:22:12
【问题描述】:

我在 Pydev/Eclipse 的交互式 IPython 控制台中使用 Pandas 的大型数据框。每次我尝试访问数据框属性或方法时,控制台都会在我输入df. 后冻结几秒钟。显然它会寻找完成,并且可能会不小心在后台调用一些冗长的操作。

有没有办法避免这种情况?

【问题讨论】:

标签: eclipse python-3.x pandas ipython pydev


【解决方案1】:

您可以通过设置 Eclipse Preferences 来控制大部分行为。您可以开始禁用所有功能并尝试重新启用您需要的功能。

  • PyDev->Editor->代码分析
  • PyDev->Editor->代码完成

你的问题可能是什么

其他策略

  • 使用特殊模块禁用特殊模块中的代码分析 源中的 cmets。
  • 禁用自动代码分析并使用快捷方式触发它(使用 SHIFT+CTRL+L 显示所有 pydev 快捷方式)

【讨论】:

  • 我检查了选项并且 - 正如预期的那样 - “请求完成”是问题所在。但是,仅将其关闭并不是真正的解决方案。完成有助于建议 pandas 数据框变量的名称。这个完成以某种方式动态生成,显然交互式控制台输入了一些它不应该做的代码。我不熟悉 IPython 如何检查完成或 Pandas 如何动态注入列名。
  • 尝试“应用完成”。或尝试使用“自动完成延迟”。
  • 这不是 Pydev 的错。如果您使用自定义 __getattribute__ which 编写一个类,您将获得相同的行为。延迟冻结不会有太大帮助。每当它完成时,Pydev/Pandas 就会执行一些它不应该执行的代码。
  • PyDev 可以接受一个“注释”来警告它不要在某些模块中进行代码分析。为了做到这一点,将光标移动到模块的第一行并按 'Ctrl+1' 并选择 @PydevCodeAnalysisIgnore 标志。这样做会在代码中添加一条注释,警告 PyDev 不应分析此模块。
  • 当然。但这与代码分析无关。我打开交互式控制台。我加载了我的熊猫数据框(称为df)。我输入df.,它会冻结几秒钟。确实没有添加 cmets 的地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-23
  • 2023-03-30
  • 1970-01-01
  • 2020-08-20
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多