Python看不到模块中的文件

所以我将代码拆分为项目目录中的不同文件 

http://img4.mukewang.com/60e40e26000129bd01910254.jpg

但是当我将这些模块导入 main.py 时,它抱怨说它看不到其中的文件

import pygame

import winsound

import random

import math

#import wGeneration

import rGeneration

from Camera import camera

from KeyHandle import KeyHandle

导入 Keyhandle 时会出现此错误

http://img1.mukewang.com/60e40e3700018d5904300064.jpg

这是 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)

谁能告诉我我做错了什么?


慕的地8271018
浏览 123回答 1
1回答

开满天机

您正在使用循环导入。有很多关于它是什么的解释,但是您正在跨多个模块导入相同的模块。一种解决方案是在函数范围内导入模块,而不是在文件中全局导入,即: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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python