Python PyCharm自动完成不适用于pygame

Python PyCharm自动完成不适用于pygame,python,pygame,pycharm,Python,Pygame,Pycharm,我刚刚安装了PyCharm社区版3.4.1,并尝试在其中制作一个简单的pygame项目。我发现代码完成以一种奇怪的方式运行。在这种情况下: from pygame import event event. 当我键入event.时,一个带有event方法的完成弹出窗口立即显示。但在第二种情况下: import pygame pygame.event. 弹出窗口仅包含对象方法 我如何学习自动完成工具来更深入地查看库?除了创建自己的工具之外,您不能。如果启用以下功能,您可以使pycharm在代码完成

我刚刚安装了PyCharm社区版3.4.1,并尝试在其中制作一个简单的pygame项目。我发现代码完成以一种奇怪的方式运行。在这种情况下:

from pygame import event
event.
当我键入
event.
时,一个带有
event
方法的完成弹出窗口立即显示。但在第二种情况下:

import pygame
pygame.event.
弹出窗口仅包含
对象
方法


我如何学习自动完成工具来更深入地查看库?

除了创建自己的工具之外,您不能。如果启用以下功能,您可以使pycharm在代码完成方面做得更好:


但除此之外,你运气不好。Python很难完成代码,因为它是一种动态语言,而且存根(骨架)并不是万能的。

它与pygame的构造方式有关

委员会:

文件包含以下结构:

try: import pygame.cdrom
except (ImportError,IOError):cdrom=MissingModule("cdrom", geterror(), 1)
这允许丢失导入。然而,这混淆了pycharm。删除try+except将修复pycharm自动完成。

我尝试了Daid的答案(在init.py中删除try/except),但它不起作用,但非常接近!以下是专门针对pygame进行修复的方法:

  • 转到pygame文件夹,在文本编辑器中打开init.py
  • 导航到包含try/except子句的导入部分(第109行附近)
  • 将所需模块的格式从import pygame.module更改为from pygame import module
  • 例如,改变

    try: import pygame.event
    


    重新启动PyCharm,它应该可以工作:)

    为什么IDE不能使用ipython,它具有非常棒的自动完成功能?因为ipython是一个控制台,而PyCharm的编辑器是一个编辑器。在iPython中,您实际上也在运行一个繁重的调试器,以检查您要求python执行的所有操作→ 失效缓存/重启(耗时30分钟!),现在自动完成对pygame有效(大部分)。不幸的是,PyCharm在检查过程中仍然会收集这样的错误:“在‘image.py’中找不到引用‘load’。无论如何,谢谢!
    try: import pygame.event
    
    try: from pygame import event