MacOS运行pandas程序报random模块循环导入AttributeError如何解决
故障根因
报错和pandas、numpy安装损坏、Python版本问题完全无关,核心原因是你执行脚本的工作目录/Users/adan_vazquez/Desktop/automate_python/下存在自定义命名的random.py文件,和Python标准库内置的random模块重名。
Python导入模块时会优先检索当前工作目录下的文件,当pandas依赖的numpy、secrets等组件尝试加载标准库random模块时,会错误加载你自己写的这个random.py。此时自定义的random模块还未完成初始化,你在文件里写的print(random.randint(1,10))代码尝试调用还没加载完成的模块属性,就会触发提示的循环导入报错。
你在交互终端导入pandas也触发相同报错,是因为你打开交互终端时的当前路径正好是上述automate_python目录,Python同样会优先加载当前目录下的重名文件。
修复步骤
- 将工作目录下的
random.py重命名为不会和标准库、第三方库重名的名称,例如random_test_demo.py,禁止使用random.py、pandas.py、numpy.py这类和已有模块同名的文件名 - 删除同目录下的
__pycache__缓存文件夹,以及可能存在的random.pyc缓存文件,避免旧缓存干扰模块加载 - 重新执行
test_pandas.py脚本即可正常运行,不需要重装任何第三方库。
避坑提示:日常写Python脚本时,不要用任何Python内置模块、已安装第三方库的名称作为自己的脚本文件名,否则会大概率触发这类模块覆盖导致的导入错误。
内容的提问来源于stack exchange,提问作者TaylorBlackburn-292
相关产品推荐
相关产品推荐

