VS Code运行导入pygame的Python文件持续报错 提示循环导入AttributeError
问题根因
报错原因非常明确:你把自己写的代码文件命名成了pygame.py。
Python执行import pygame导入语句时,会优先读取当前运行目录下的文件,你自己写的pygame.py和第三方pygame库完全重名,导致Python根本没加载到真正安装的pygame库,反而把你自己这个还没跑完初始化逻辑的脚本当成库来加载,直接触发了循环导入报错。这个问题和你写的DVD动画逻辑、M1芯片、VS Code版本都没有关系。
解决操作
- 第一步:把当前目录下的
pygame.py重命名,改成不和第三方库重名的名字即可,比如dvd_demo.py、bounce_test.py都可以 - 第二步:如果同目录下生成了
__pycache__缓存文件夹,直接整个删掉,避免残留旧的导入缓存 - 第三步:重新运行代码就能正常看到DVD Logo弹跳效果了
新手排查同类报错提示
之后再碰到partially initialized module 'xxx' has no attribute 'xxx' (most likely due to a circular import)这类报错,第一时间先检查两个点:
- 当前运行的主脚本文件名,是不是和你要导入的第三方库重名
- 你自己写的其他Python文件,是不是和要导入的库/模块重名
这是Python新手最容易踩的命名坑,和代码业务逻辑本身没有关系,改完文件名立刻就能解决。
内容的提问来源于stack exchange,提问作者Hopeful-Citizen
相关产品推荐
相关产品推荐

