Python3.10调用pyfiglet报部分初始化模块属性错误如何解决
报错根因
这个报错基本和pyfiglet库本身的循环导入缺陷无关,最常见的触发原因是本地文件命名冲突:你运行测试代码的工作目录下存在名为pyfiglet.py的自定义脚本,或是残留了pyfiglet.pyc缓存、同名pyfiglet文件夹。Python导入模块时会优先检索当前工作目录,此时加载的是本地不完整的同名文件,而非你通过pip安装的正式pyfiglet库,就会抛出模块未完全初始化、找不到对应方法的错误。
两天前运行正常,是因为当时工作目录下还不存在这个同名冲突文件。
修复步骤
- 重命名冲突文件:打开测试脚本所在的文件夹,把所有命名为
pyfiglet.py的文件改成其他不与第三方库重名的名字,比如figlet_test.py。 - 清理缓存:删除当前目录下的
__pycache__文件夹,以及所有后缀为.pyc的缓存文件,避免错误的导入缓存被加载。 - 重装依赖(前两步无效时操作):如果清理完冲突还是报错,执行以下命令重装pyfiglet,排除库文件损坏的问题:
pip uninstall pyfiglet -y pip install pyfiglet
- 验证:重新运行你的测试代码即可正常输出banner3-D字体的字符画。
排查辅助方法
如果无法确认当前加载的pyfiglet来源,可以在测试代码开头加一行打印模块路径,判断是否加载正确:
import pyfiglet print(pyfiglet.__file__)
如果输出路径是你当前项目文件夹下的路径,说明仍存在本地文件冲突;如果输出路径是Python环境目录下的site-packages/pyfiglet/__init__.py,才是正确加载了官方安装的第三方库。
内容的提问来源于stack exchange,提问作者DdeadliestT
相关产品推荐
相关产品推荐

