首页 > 解决方案 > Python 看不到模块中的文件

问题描述

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

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

import pygame
import winsound
import random
import math
#import wGeneration
import rGeneration
from Camera import camera
from KeyHandle import 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)

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

标签: pythonmodule

解决方案


您正在使用循环导入。关于它的含义有很多解释,但是您正在跨多个模块导入相同的模块。一种解决方案是在函数范围内导入模块,而不是在文件中全局导入,即:

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)

推荐阅读