Автозаполнение PyCharm не работает с pygame

Я только что установил PyCharm Community Edition 3.4.1 и попытался сделать в нем простой проект pygame. Я обнаружил, что завершение кода работает странным образом. В этом случае:

from pygame import event
event.

когда я типа event. всплывающее окно завершения с event методы сразу показывает. Но во втором случае:

import pygame
pygame.event.

всплывающее окно содержит только object методы.

как я могу узнать инструмент автозаполнения, чтобы заглянуть глубже в библиотеку?

3 ответов


кроме создания собственного скелеты, вы не можете. Вы можете сделать pycharm немного лучше "автозавершение кода", если вы включите следующее:

enter image description here

но кроме этого, вам не повезло. Python трудно сделать завершение кода, потому что его динамический язык, а заглушки (скелеты) не существуют для всего.


я попробовал ответ Daid (удаление try / except в init.py) и это не сработало, но это было очень близко! Вот как вы можете исправить это специально для pygame:

  1. перейдите в папку pygame и откройте init.py в текстовом редакторе
  2. перейдите к разделу импорта с предложениями try / except (вокруг строки 109)
  3. изменить формат импорт pygame.модуль to из импорта pygame модуль для модулей, которые вы хотите

например,

try: import pygame.event

to

try: from pygame import event

перезапустите PyCharm, и он должен работать:)


Это связано с тем, как построена pygame.

The:

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

файл содержит следующую конструкцию:

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

что позволяет пропустить импорт. Однако, это смущает pycharm. Удаление try + except исправит автоматическое завершение pycharm.