python 3.5 in statsmodels ImportError: cannot import name '_representation'

python 3.5 in statsmodels ImportError: cannot import name '_representation'

我无法正确导入 statsmodels.api 我遇到了这个错误:

File "/home/mlv/.local/lib/python3.5/site-packages/statsmodels/tsa/statespace/tools.py", line 59, in set_mode from . import (_representation, _kalman_filter, _kalman_smoother, ImportError: cannot import name '_representation'

我已经尝试重新安装或更新它,但没有改变。 请我需要帮助 =)

详情请参阅the github report

事实证明,statsmodels 依赖于在它之前安装的几个包,以便它可以键入它们来编译自己的模块。我不完全理解依赖关系,或者为什么没有在包的设置中指定它们,但这解决了我的问题。

如果您需要清理已有的内容,可以使用以下方法卸载:

pip3 uninstall statsmodels

然后确保你的依赖项在那里

pip3 install numpy scipy patsy pandas

那么,只有先安装这四个之后:

pip3 install statsmodels

然后继续您的导入和代码。

====另外/交替=====

大多数情况下建议使用virtualenv。它还将允许您创建自己的环境,您可以在其中控制自己的库。您可以创建您想要的所有内容,并为每个项目命名它们。您现在很可能正在使用在系统级别和用户级别安装的 python 模块的混合,并且当系统包更新时,它们可能会从您的下面改变。您的系统版本 scipy 可能与较新的用户版本的 statsmodels 冲突。对于python 3.5,你必须安装venv;但在 3.6 中它成为了发行版的一部分。

首先,查看您刚 运行 python3.

时的系统路径
python3
>>> import sys
>>> print(sys.path)
>>> quit()

然后创建一个干净、独立的环境并执行相同的操作。

sudo apt install python3-venv
python3 -m venv ~/name_me
source ~/name_me/bin/activate
python3
>>> import sys
>>> print(sys.path)
>>> quit()

它应该有基本库的路径,但要避免安装附加包的路径。你有一个干净的环境来安装它们。然后,从这个 virtualenv 中,您应该能够通过更改的 shell 提示检测到它,您可以从之前进行 pip 安装,看看它们是否有效。

pip install numpy scipy patsy pandas
pip install statsmodels
python
>>> import statsmodels.api as sm

完成后,您可以退出 virtualenv

deactivate

我通过安装 statsmodels 的 gihub 存储库版本解决了这个问题,

pip3 install git+https://github.com/statsmodels/statsmodels.git

您可以简单地使用 Anaconda 再次安装包

conda install statsmodels

如果有包需要调整,会自动提示(见下文)。我能够通过这种方式解决问题。