这是我正在制作的游戏。虽然我自己看不到问题。
这是错误和两个 .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 中。相反。
