2016-05-02 60 views
2

在编辑器窗口中键入以下代码时,只显示一些可用的自动完成项目。也就是说它应该显示.loc作为选项,但不会。PyCharm代码完成在控制台但不是编辑器中工作

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

code completion in editor window

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

code completion with the full list

我已无效的高速缓存和重新启动。此外,似乎另一个建议是打开Python调试器 - >收集代码洞察的运行时类型信息。我在编辑器窗口中也是这样做的,而且什么都没做。

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

任何帮助将不胜感激!

+0

因此,当你在'df.'之后尝试自动完成时,它是否正确显示了某些DataFrame特有的功能(即不是'object','__builtins__'等的一部分)? –

+0

@AnthonyE,我检查了与[本列表](http://pandas.pydata.org/pandas-docs/version/0.17.1/generated/pandas.DataFrame.html)相比较的所有方法,向上。虽然我没有检查所有的方法,但我确实检查了所有的属性。唯一没有出现的是iat,iloc,loc和ix。我应该说'_ix'确实出现了。这是否回答你的问题? – Brian

回答

2

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

+1

即使我将它定义为DataFrame对象,这是'read_csv'返回的内容,它不会提供[完整列表](http://pandas.pydata.org/pandas-docs/version/0.17.1/ generated/pandas.DataFrame.html)的方法和属性。属性方面,它不显示'iat','iloc','loc','ix',尽管关于'ix'它显示'_ix'。 – Brian

0

我曾经有过这个相同的问题。这在Linux中只发生在我身上。请注意,这是可能的,实际上是Windows中的标准行为,所以可以这样做。不知道使用静态分析还是类似的方法。

我已经能够解决它了,我想它是不是在运行/调试配置中定义正确的解释器,而且还在项目的默认值中(检查文件 - >设置 - >项目解释器和文件 - >默认设置 - >项目解释器)

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

+0

你能找到调试解决方案吗?我有同样的问题。 – smm

相关问题