调用pd.Timestamp触发'module' object is not callable错误如何解决?
'module' object is not callable 异常成因与解决方案
异常成因
- 变量名覆盖:你在同环境的其他单元格中,用
pd作为变量名赋值过其他模块对象,覆盖了原本pandas库的别名。比如之前运行过import xxx as pd或者直接给pd赋值了某个模块类型的变量,导致当前调用时pd指向的不是pandas库。 - 类属性被覆盖:你曾经对
pd.Timestamp做过赋值操作,把原本pandas的Timestamp类替换成了模块对象,调用时尝试执行模块对象触发报错。 - 本地文件冲突:运行目录下存在名为
pandas.py或pd.py的自定义Python文件,导入时优先加载了本地同名模块而非官方pandas库,导入的模块没有对应可调用的方法。
解决方案
- 优先执行内核重启操作:Jupyter等notebook环境直接重启内核,清空所有已缓存的变量和导入记录,重新运行当前代码段即可。如果重启后恢复正常,后续注意不要用
pd、pandas这类常用库别名作为自定义变量、文件名即可。 - 排查本地冲突文件:如果重启后仍报错,检查运行目录下是否存在
pandas.py、pd.py文件或对应的__pycache__缓存,删除冲突文件后再运行即可。 - 临时规避命名冲突:如果不想排查历史代码的命名问题,可修改导入别名避开冲突,示例代码如下:
import pandas as pd_lib import time def give_time_string(): time_code = str(pd_lib.Timestamp.today().strftime('_%d_%m_%Y')) return time_code
内容的提问来源于stack exchange,提问作者Norristoystory
相关产品推荐
相关产品推荐

