【问题标题】:PyCharm code completion works in console but not editorPyCharm 代码完成在控制台中有效,但在编辑器中无效
【发布时间】:2016-08-26 16:44:20
【问题描述】:

在编辑器窗口中输入以下代码时,只会显示一些可用于自动完成的项目。也就是说,它应该显示 .loc 作为一个选项,但没有。

    import pandas as pd
    df = pd.read_csv('somecsvfile.csv')
    df.

code completion in editor window

在 PyCharm 中使用相同代码的控制台时,会显示完整列表。 (见附图)

code completion with the full list

我已使缓存无效并重新启动。此外,似乎另一个建议是打开 Python 调试器 -> 收集运行时类型信息以获取代码洞察力。我也这样做了,但在编辑器窗口中仍然没有。

真正让我困惑的是代码完成在控制台中工作,而不是在编辑器中。

任何帮助将不胜感激!

【问题讨论】:

  • 那么当您在df. 之后尝试自动完成时,它是否正确显示了某些特定于DataFrame 的功能(即不是object__builtins__ 等的一部分)?
  • @AnthonyE,在我检查的所有方法中,我与this list 相比,它们都出现了。虽然我没有检查所有方法,但我确实检查了所有属性。唯一没有出现的是iatiloclocix。我应该说_ix 确实出现了。这能回答你的问题吗?

标签: python pandas pycharm


【解决方案1】:

当您在控制台中运行它时,它知道df 的类型,因为它实际上就在那里。它甚至可以运行dir(df) 来准确了解可用的名称。在编辑器中,它没有运行代码,因此它必须通过检查 pd.read_csv 来猜测类型,这要困难得多(通常甚至不可能),因为 Python 是如此动态。

【讨论】:

  • 即使我将它定义为一个 DataFrame 对象,这是 read_csv 返回的内容,它也不提供 full list 的方法和属性。属性方面,它不显示iatiloclocix 尽管关于ix 它确实显示_ix
【解决方案2】:

我曾经遇到过同样的问题。这仅在 Linux 中发生在我身上。请注意,这是可能的,实际上是 Windows 中的标准行为,因此可以完成。不确定是使用静态分析还是类似的方法。

我已经能够修复它,我认为它不仅在运行/调试配置中定义了正确的解释器,而且在项目的默认值中定义了正确的解释器(检查 File-->settings-->Project解释器和文件-->默认设置-->项目解释器)

我现在已经转到下一个问题,即自动完成功能适用于 Python 控制台和文件编辑,但奇怪的是不适用于调试!...

【讨论】:

  • 你能找到调试的解决方案吗?我有同样的问题。
猜你喜欢
  • 2019-05-23
  • 1970-01-01
  • 1970-01-01
  • 2014-12-06
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多