如何解决导入Numpy时出现的linecache无checkcache属性错误
解决「AttributeError: module 'linecache' has no attribute 'checkcache'」问题
兄弟,我仔细扒了你的报错堆栈,发现问题根本不是linecache本身出了问题,而是你的脚本文件名和Python标准库的模块重名了!你看这关键的一行:
File "C:\Users\z1885\Desktop\鸡行为分析\codepy\token.py", line 5, in
import request as request
当numpy的导入链走到tokenize模块时,tokenize需要导入标准库的token模块,但Python会优先从你当前脚本所在的目录查找,结果找到了你自己写的token.py,直接把标准库的模块给覆盖了。这个错误的导入引发了一连串连锁反应,最后导致inspect调用linecache.checkcache时出错——毕竟整个导入链已经彻底乱套了。
具体修复步骤:
- 立刻把你的
token.py重命名成不冲突的名字,比如my_token_processor.py,总之别再用token.py这种和标准库撞名的文件名。 - 如果同目录下存在
token.pyc文件,也一起删掉,这是Python生成的编译缓存文件,不删的话可能还会触发旧的错误导入。 - 重启你的Python解释器或者IDE,让之前的模块缓存彻底清空,新的文件名才能生效。
- 以后写代码时,尽量避免用标准库或知名第三方库的名字作为自己的脚本文件名,比如别叫
numpy.py、requests.py这类,这是Python新手很容易踩的坑。
按这些步骤操作完,再尝试import numpy as np,应该就能正常导入了。
内容的提问来源于stack exchange,提问作者veci Veni
相关产品推荐
相关产品推荐

