Python не видит файлы в модулях - PullRequest
0 голосов
/ 04 октября 2018

Поэтому я разбил свой код на разные файлы, которые находятся в каталоге проекта files in directory

Но когда я импортирую эти модули в main.py, он жалуется, что не видитфайлы в них

import pygame
import winsound
import random
import math
#import wGeneration
import rGeneration
from Camera import camera
from KeyHandle import KeyHandle

При импорте Keyhandle выдает эту ошибку

keyhandle

Это то, что находится в модуле KeyHandle, хотя

import main
import pygame

def KeyHandle():
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                pygame.quit()
                quit()
            if event.key == pygame.K_UP:
                main.dire.append(3)
            if event.key == pygame.K_DOWN:
                main.dire.append(2)

        if event.type == pygame.KEYUP:
            if event.key == pygame.KEYUP:
                main.dire.remove(3)
            if event.key == pygame.K_DOWN:
                main.dire.remove(2)

Может кто-нибудь сказать мне, что я делаю не так?

1 Ответ

0 голосов
/ 04 октября 2018

Вы используете круговой импорт. Существует множество объяснений о том, что это такое, но вы импортируете один и тот же модуль через несколько модулей.Одно из решений состоит в том, чтобы импортировать модули в области функций, а не глобально в файле, например:

def KeyHandle():
    import main # Import here instead
    import pygame
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                pygame.quit()
                quit()
            if event.key == pygame.K_UP:
                main.dire.append(3)
            if event.key == pygame.K_DOWN:
                main.dire.append(2)

        if event.type == pygame.KEYUP:
            if event.key == pygame.KEYUP:
                main.dire.remove(3)
            if event.key == pygame.K_DOWN:
                main.dire.remove(2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...