PyCharm自动完成功能不适用于pygame

时间:2014-10-09 11:54:33

标签: python pygame pycharm

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

from pygame import event
event.

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

import pygame
pygame.event.

弹出窗口仅包含object个方法。

如何学习自动完成工具以深入了解库?

3 个答案:

答案 0 :(得分:5)

除了创建自己的skeletons之外,您无法做到。如果启用以下内容,则可以使pycharm更好地完成代码:

enter image description here

但除此之外,你运气不好。 Python很难完成代码,因为它是一种动态语言,并且存根(骨架)并不存在于所有内容中。

答案 1 :(得分:4)

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

  1. 转到您的pygame文件夹并在文本编辑器中打开 init .py
  2. 使用try / except子句(第109行附近)导航到导入部分
  3. 将格式从 import pygame.module 更改为从pygame导入模块获取所需模块
  4. 例如,更改

    try: import pygame.event
    

    try: from pygame import event
    

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

答案 2 :(得分:1)

它与构造pygame的方式有关。

在:

python\Lib\site-packages\pygame\__init__.py

文件包含以下结构:

try: import pygame.cdrom
except (ImportError,IOError):cdrom=MissingModule("cdrom", geterror(), 1)

允许缺少进口。但是,这会混淆pycharm。删除try + except将修复pycharm自动完成。

相关问题