2015-03-04 2 views
2

Intro: pygame - это модуль python, используемый для создания игр. Я правильно установил модуль, и мой PyCharm успешно импортирует его.Как заставить PyCharm IDE выполнить выполнение кода для подмодулей pygame?

Я буду прыгать прямо примерный сценарий:

Попытки использовать завершение получить код для суба-модуля «изображение» под Pygame работает отлично:

pygame.image 

Когда я печатаю дальше и попытайтесь получить завершение кода под изображением, он не работает:

pygame.image. # shows a suggestions list, but list doesn't contain any 
       # function names under the pygame.image sub-module 

Я пытаюсь веками. Консоль python в PyCharm может сделать это (он использует IPython, исправьте меня, если я ошибаюсь), но редактор не может.

PS извинения за не показывать скриншоты для выше, у меня нет достаточно очков StackOverflow размещать фото

+0

JetBrains - это общая IDE. Такая же функция автозаполнения для IntelliJ - это тот же автозаполнения, который они используют для PyCharm и всех других сред. Таким образом, автоматическое завершение происходит из вашего существующего кода, а не из модулей языка. –

+0

@MalikBrahimi Хм, это может быть так, потому что я успешно получаю завершение кода в NinjaIDE и IPython и IDLE. Просто не PyCharm. Итак, нет ли способа для PyCharm рекурсивно искать все подмодули внутри импортированного модуля и помогать с завершением кода? –

+0

Можете ли вы отметить как ответ, если мой ответ был вам полезен? –

ответ

1

Вот как вы можете решить эту проблему, в частности, для Pygame:

  1. Перейти в папку Pygame и открыть __init__.py в текстовом редакторе
  2. Перейдите в раздел импорта с Try/за исключением положений (вокруг линии 109)
  3. Изменение формата от импорта pygame.module в из модуля импорта Pygame для модулей, которые вы хотите

Например, изменить

try: import pygame.event 

к

try: from pygame import event 

Restart PyCharm и он должен работать :)

-1

JetBrains является общей IDE. Такая же функция автозаполнения для IntelliJ - это тот же автозаполнения, который они используют для PyCharm и всех других сред. Таким образом, автоматическое завершение происходит из вашего существующего кода, а не из модулей языка. См. here для получения дополнительной информации.

+0

Это, я считаю, если вы добавите каталог пакета в свой проект, IDE проиндексирует их и предоставит некоторый уровень автозаполнения ... проблема в том, что я не знаю, как это сделать с рук ... –

+0

Благодарю вас за ссылку на другой пост. Я бы предложил вам отредактировать свой ответ, чтобы включить, что PyCharm имеет автозаполнение для импортированных модулей, но это всего лишь * подмодули *, для которых вы не сможете автоматически завершить работу (если только каждый из них не является индивидуальным импортирован) –

1

Вот мое страшное решение ... Я в основном импортировать те, которые я чувствую, что я» мне нужно, и если мне нужно что-то вроде часов, я просто добавлю его к вершине, если я собираюсь использовать его много.

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 

Это выглядит плохо, но автозаполнение работает.

Смежные вопросы