自定义终端模拟器模块导入报错:typing模块属性未找到
问题根源与解决方法
核心问题是你自定义的typing模块和Python标准库的typing模块重名了,导致导入时出现混淆:
- 当
fileModification模块里写import typing时,Python会优先加载系统自带的标准库typing模块,而不是你自己写的那个,所以自然找不到typingPrint属性。 - 单独运行
fileModification时正常,是因为当时脚本所在目录和自定义typing模块在同一级,Python优先加载当前目录的模块;但主脚本运行时,导入路径的优先级变化,导致typing指向了标准库。
解决方案(推荐第一种)
方案1:重命名自定义模块(最稳妥,避免后续踩坑)
- 把你的
typing.py模块文件重命名为不与标准库冲突的名字,比如terminal_typing.py - 修改主脚本的导入语句:
import time, sys, shutil, random from Lib import terminal_typing as typing, clear, fileModification - 修改
fileModification模块的导入语句:import os, shutil from Lib import terminal_typing as typing - 保持原来的
typing.typingPrint()调用方式不变即可
方案2:修正导入路径(不推荐,易引发其他导入问题)
如果不想重命名模块,就明确指定导入自定义模块:
- 确保
Lib目录是一个合法的Python包(目录下添加空的__init__.py文件,Python 3.3+可省略,但显式添加更稳妥) - 修改
fileModification模块的导入语句,替换原来的import typing:import os, shutil from Lib import typing - 主脚本的导入语句保持不变:
import time, sys, shutil, random from Lib import typing, clear, fileModification
验证
修改完成后,重新运行主脚本,fileModification模块就能正确调用自定义typing模块的typingPrint方法,不会再出现属性找不到的错误。
内容的提问来源于stack exchange,提问作者Jaxer5636
相关产品推荐
相关产品推荐

