试图将常量导入文件,ImportError:尝试在没有已知父包的情况下进行相对导入



我试图运行我的代码o vscode,但从另一个文件导入一些常量时出现以下错误:"ImportError:尝试在没有已知父包的情况下进行相对导入;。

import pygame
from .constants import BLACK, ROWS, RED, SQUARE_SIZE

class Board():
def __init__(self):
self.board = []
self.selected_piece = None
self.red_left = self.white_left = 12
self.red_kings = self.white_kings = 0
def draw_squares(self, win):
#Win es window
win.fill(BLACK)
for row in range (ROWS):
for col in range(row % 2, ROWS, 2):
pygame.draw.rect(win, RED (row*SQUARE_SIZE, col*SQUARE_SIZE, SQUARE_SIZE, SQUARE_SIZE))

文件常量只包含一些具有窗口高度和宽度的常量

常数.py

import pygame
WIDTH, HEIGHT = 800, 800
ROWS, COLS = 8,80
SQUARE_SIZE = WIDTH//COLS
RED = (255,0,0)
WHITE = (255,255,255)
BLACK = (0,0,0)
BLUE = (0,0,255)

本文很好地解释了发生的事情。基本上,Python在__name__ == '__main__'时很难进行相对导入。我认为以下备选方案都可行:

  1. 您可以使用cd C:UsersMateoDesktopPythonCheckers && python -m checkers.board运行脚本

  2. 与其直接运行board.py,不如运行main.py,并让它导入checkers.board.

  3. 不要使用相对导入,而只使用from constants import BLACK, ROWS, RED, SQUARE_SIZE

最新更新