如何为python软件包模块启用自动完成(IntelliSense)?

时间:2018-06-24 01:57:29

标签: python autocomplete visual-studio-code pygame intellisense

这个问题与Pygame无关,我以Pygame为例。

在尝试Pygame时,我注意到自动完成功能不适用于某些模块。例如,如果我开始输入pygame.mixer,则自动完成功能将显示MissingModule。在寻找解决方案时,对于使用C语言编写的各种文本编辑器和模块,我发现了很多类似的问题。我使用的是Visual Studio Code,python路径设置正确,我的代码运行良好。 一种奇怪的解决方法是修改Pygame的__init__.py enter image description here 启用自动完成功能的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

我已经找到了解决方案,但是我希望从对Python有经验的人那里得到一些解释:

import package.module as module

使用Pygame调音台:

import pygame.mixer as mixer 

enter image description here

但是我仍然不明白为什么import.package.module的自动完成功能不起作用,而import.package.module as module的自动完成功能却如此。

答案 1 :(得分:1)

(change)可能不适用于(change),因为pygame.mixer 中没有属性import pygame。如果不存在该属性,则autcomplete不会列出该属性。

导入包时,Python不会递归地导入子包和模块,除非在包内的“ __init__.py”文件中明确分配了子包和模块。

这就是mixer之所以起作用的原因,因为您导入了pygame import pygame.mixer as mixer模块(?),可通过本地名称pygame使用。但是,使用这种导入,您在本地范围内没有mixer

类似的情况是您只是mixerpygame可用,但import pygame.mixer必须引用pygame

在两种情况下都执行mixer软件包和pygame.mixer模块(?)。

如果要重命名,也可以使用pygame代替pygame.mixerfrom pygame import mixer

答案 2 :(得分:0)

尝试: 从pygame导入*

现在您可以看到嵌套的自动完成选项。

相关问题