Автозаполнение PyCharm не работает с pygame
Я только что установил PyCharm Community Edition 3.4.1 и попытался сделать в нем простой проект pygame. Я обнаружил, что завершение кода работает странным образом. В этом случае:
from pygame import event
event.
когда я типа event.
всплывающее окно завершения с event
методы сразу показывает. Но во втором случае:
import pygame
pygame.event.
всплывающее окно содержит только object
методы.
как я могу узнать инструмент автозаполнения, чтобы заглянуть глубже в библиотеку?
3 ответов
кроме создания собственного скелеты, вы не можете. Вы можете сделать pycharm немного лучше "автозавершение кода", если вы включите следующее:
но кроме этого, вам не повезло. Python трудно сделать завершение кода, потому что его динамический язык, а заглушки (скелеты) не существуют для всего.
я попробовал ответ Daid (удаление try / except в init.py) и это не сработало, но это было очень близко! Вот как вы можете исправить это специально для pygame:
- перейдите в папку pygame и откройте init.py в текстовом редакторе
- перейдите к разделу импорта с предложениями try / except (вокруг строки 109)
- изменить формат импорт 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.