Python:Intellisense不适用于模块中的对象

时间:2019-08-20 14:27:09

标签: python visual-studio-code intellisense

我在Python中有以下代码,该代码使用tweepy模块与Twitter进行交互。以下代码可以正常工作。它通过@name(在本例中为testuser)从Twitter获取用户,然后打印其显示名称。

import tweepy

... # Initialization of the keys and tokens used below

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

api = tweepy.API(auth)

user = api.get_user("ThePSF")
print(user.name)

输出如预期的那样:

Python Software

问题是VS Code中的Intellisense(autopep8)并未建议user的属性和方法,例如namedescriptionlocation等...

Intellisense doesn' suggest anything for the tweepy.user object

但是Intellisense会向我建议api的属性和方法,尽管我不知道为什么它适用于该对象而不适用于user对象。

Intellisense does work

  

我已经查看了这个Github问题页面,但没有找到   解决方案

     

https://github.com/Microsoft/vscode-python/issues/647


我在做什么错了,没有显示user对象的智能感知力?

2 个答案:

答案 0 :(得分:0)

您很可能没有做错任何事情,并且tweepy的构造方式很简单,可以抑制IntelliSense。请务必try the Microsoft language server看看是否适合您。

答案 1 :(得分:0)

我在全新安装的 Windows 和 Visual Studio 代码上运行 microsoft's python language server 时遇到了同样的问题。

我尝试了新的 Pylance 语言服务器,并且成功了。该扩展现在可以作为预览版使用,因此它可能不是百分百稳定,但是在使用它一天后我没有遇到任何问题。从 this blogpost from microsoft 来看,这将是未来的首选语言服务器。

<块引用>

我们的长期计划是将我们的 Microsoft Python 语言服务器用户过渡到 Pylance,并最终弃用和删除旧的语言服务器作为支持选项。

安装 Pylance 扩展并在出现提示时单击“是”将其设置为语言服务器。您也可以在 settings.json

中手动设置
"python.languageServer": "Pylance"