Skip to main content
 首页 » 编程设计

python之无法导入类

2025年05月04日9cyq1162

这是我正在制作的游戏。虽然我自己看不到问题。

这是错误和两个 .py 文件:

C:\Users\Rickard\My Programs\Python\slutarbete\New try>main.py 
Traceback (most recent call last): 
  File "C:\Users\Rickard\My Programs\Python\slutarbete\New try\main.py", line 6, 
 in <module> 
    from rabbits import Rabbit 
  File "C:\Users\Rickard\My Programs\Python\slutarbete\New try\rabbits.py", line 
 3, in <module> 
    import main 
  File "C:\Users\Rickard\My Programs\Python\slutarbete\New try\main.py", line 6, 
 in <module> 
    from rabbits import Rabbit 
ImportError: cannot import name Rabbit 

主要.py

# -*- coding: utf-8 -*- 
 
import pygame, sys, random, math 
from rabbits import Rabbit 
from pigs import Pig 
from boars import Boar 
from pygame.locals import * 
from threading import Timer 
 
pygame.init() 
pygame.mixer.init() 
mainClock = pygame.time.Clock() 
 
WINDOW_WIDTH = 640 
WINDOW_HEIGHT = 400 
 
level = 1 
while True: 
 
... 

还有 rabbits.py 文件:

# -*- coding: utf-8 -*- 
import pygame, sys, random, math 
import main 
 
class Rabbit(object): 
 
    rabbitCounter = 0 
    NEW_RABBIT = 40 
    RABBIT_SIZE = 64 
 
    ... 

我当然可以使用一些帮助来解决这段代码中的其他明显错误。

请您参考如下方法:

你有一个循环导入。在您的 main 模块中,您尝试从 rabbits 导入。但是从 rabbits 你 import main。但是 main 尚未完成导入,因此当您尝试从 rabbits 模块导入任何内容时会导致 ImportError。

我不知道你为什么要在那里导入,但你应该重组你的模块,这样 rabbits 就不需要 main 中的任何东西。

另见 Circular (or cyclic) imports in Python

此外,对于包含多个模块的任何 Python 项目,您应该将其放入 package 中。相反。