Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何让PyCharm IDE完成pygame';s子模块?_Python_Python 2.7_Pycharm - Fatal编程技术网

Python 如何让PyCharm IDE完成pygame';s子模块?

Python 如何让PyCharm IDE完成pygame';s子模块?,python,python-2.7,pycharm,Python,Python 2.7,Pycharm,简介:pygame是一个用于创建游戏的python模块。我已正确安装模块,我的PyCharm已成功导入该模块 我将直接跳到一个示例场景: 尝试对pygame下的子模块“image”使用get代码补全可以正常工作: pygame.image 当我进一步键入并尝试在图像下完成代码时,它不起作用: pygame.image. # shows a suggestions list, but list doesn't contain any # function name

简介:pygame是一个用于创建游戏的python模块。我已正确安装模块,我的PyCharm已成功导入该模块

我将直接跳到一个示例场景:

尝试对pygame下的子模块“image”使用get代码补全可以正常工作:

pygame.image
当我进一步键入并尝试在图像下完成代码时,它不起作用:

pygame.image.  # shows a suggestions list, but list doesn't contain any
               # function names under the pygame.image sub-module
我已经试了很久了。PyCharm中的python控制台可以做到这一点(它使用IPython,如果我错了,请纠正我),但编辑器不能


PS抱歉没有显示上面的屏幕截图,我没有足够的堆栈溢出点来发布图像

JetBrains是一个通用的IDE。IntelliJ的自动完成功能与PyCharm及其所有其他环境使用的自动完成功能相同。因此,自动补全是从现有代码派生的,而不是从语言的模块派生的。有关更多信息,请参阅。

以下是专门针对pygame解决此问题的方法:

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

    try: import pygame.event
    


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

    这是我糟糕的解决方案……我基本上导入了我觉得需要的东西,如果我需要时钟之类的东西,如果我要经常使用它,我会将它添加到顶部

    import pygame
    
    import pygame.draw as draw
    import pygame.cursors as cursors
    import pygame.math as math
    import pygame.display as display
    import pygame.event as event
    import pygame.image as image
    import pygame.joystick as joystick
    import pygame.key as key
    import pygame.mouse as mouse
    import pygame.sprite as sprite
    import pygame.threads as threads
    

    它看起来很糟糕,但自动完成工作

    JetBrains是一个通用的IDE。IntelliJ的自动完成功能与PyCharm及其所有其他环境使用的自动完成功能相同。因此,自动补全是从您现有的代码中派生出来的,而不是从语言的模块中派生出来的。@MalikBrahimi-Hmm可能是这样的,因为我在NinjaIDE和IPython以及IDLE中成功地完成了代码补全。只是没有魅力。那么PyCharm是否无法递归搜索导入模块内的所有子模块,并帮助完成代码?如果我的回答对您有帮助,请您标记为回答?您是在虚拟环境中工作还是将pygame安装到您的系统Python?@IanAuld它已安装到我的系统pythonThat说,我相信如果您将包目录添加到您的项目中,IDE将对它们进行索引,并提供某种程度的自动完成。。。问题是,我不知道如何立即做到这一点……另一篇文章的链接有一些可能的解决方案,谢谢。我建议您编辑您的答案,以包括PyCharm确实具有导入模块的自动完成功能,但它只是子模块,您无法自动完成工作(除非每个子模块都单独导入)
    import pygame
    
    import pygame.draw as draw
    import pygame.cursors as cursors
    import pygame.math as math
    import pygame.display as display
    import pygame.event as event
    import pygame.image as image
    import pygame.joystick as joystick
    import pygame.key as key
    import pygame.mouse as mouse
    import pygame.sprite as sprite
    import pygame.threads as threads