Python 3 AttributeError:statsmodels无'tools'属性问题求助
首先可以明确说:这个问题大概率不是statsmodels的bug,更可能是你的Python环境里statsmodels安装不完整、存在命名冲突或者路径异常导致的。给你几个排查和解决的步骤:
彻底清理并重装statsmodels
有时候普通重装可能残留损坏的文件,试试完全卸载后再装指定兼容版本(你用的是Python3.6,推荐安装statsmodels 0.13.5,这个版本对3.6支持较好):# 用pip卸载 pip uninstall -y statsmodels # 如果是conda环境,用这个卸载 conda remove -y statsmodels # 重新安装指定版本,加上--no-cache-dir避免缓存问题 pip install --no-cache-dir statsmodels==0.13.5检查是否存在命名冲突
看看你的脚本文件名是不是叫statsmodels.py,或者当前工作目录下有没有同名的文件——这会导致Python错误地导入本地文件,而不是真正的statsmodels库。
可以在交互环境里运行下面的代码确认导入路径:import statsmodels print(statsmodels.__file__)如果输出的路径不是你anaconda环境下的site-packages文件夹,那就是命名冲突了,改个文件名就行。
验证安装完整性
重装后,先在Python交互环境里直接尝试导入tools模块:import statsmodels.tools如果不报错,说明安装正常了;如果还是报错,去
pip show statsmodels输出的Location路径下,检查有没有statsmodels/tools文件夹,以及里面的文件是否完整——如果缺失,可能是下载过程中文件损坏,重复上面的重装步骤即可。确认conda环境正确性
如果你用的是Anaconda,要确保你激活的是正确的环境(就是你安装statsmodels的那个环境)。可以用conda list statsmodels查看当前环境的statsmodels信息,确认版本和路径都对得上。
另外提一句:你的代码里x = pd.DataFrame(导入一个向量)这里需要替换成实际的数据,比如x = pd.DataFrame([1,3,5,7,9]),不过这不是导致当前错误的原因,只是后续运行需要注意的点。
内容的提问来源于stack exchange,提问作者r357

