statsmodels ImportError中的python 3.5:无法导入名称“ _representation”

Jér*_*émy 7 python importerror python-3.x statsmodels python-3.5

我无法正确导入statsmodels.api时出现此错误:

在第59行的文件“ /home/mlv/.local/lib/python3.5/site-packages/statsmodels/tsa/statespace/tools.py”中,从set_mode开始。导入(_representation,_kalman_filter,_kalman_smoother,ImportError:无法导入名称“ _representation”

我已经尝试重新安装或更新它,但不会更改。请帮助我=)

mig*_*ile 10

请参阅github报告以获取更多详细信息。

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

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

pip3 uninstall statsmodels
Run Code Online (Sandbox Code Playgroud)

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

pip3 install numpy scipy patsy pandas
Run Code Online (Sandbox Code Playgroud)

然后,仅在首先安装这四个之后:

pip3 install statsmodels
Run Code Online (Sandbox Code Playgroud)

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

====额外/交替=====

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

首先,从刚运行python3时开始查看系统路径。

python3
>>> import sys
>>> print(sys.path)
>>> quit()
Run Code Online (Sandbox Code Playgroud)

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

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

它应具有指向基本库的路径,但应避免指向已安装的其他软件包的路径。您有一个干净的环境可将它们安装到其中。然后,在该virtualenv中,应该可以通过更改后的shell提示检测到该环境,您可以从之前进行pip安装,并查看它们是否有效。

pip install numpy scipy patsy pandas
pip install statsmodels
python
>>> import statsmodels.api as sm
Run Code Online (Sandbox Code Playgroud)

完成后,您可以退出virtualenv

deactivate
Run Code Online (Sandbox Code Playgroud)

  • 抱歉,但即使在那之后,结果都是一样的... :( (2认同)

Shi*_*eph 5

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

pip3 install git+https://github.com/statsmodels/statsmodels.git
Run Code Online (Sandbox Code Playgroud)