无法在python中找到模块

时间:2014-09-10 07:41:14

标签: python python-2.7 scipy anaconda

我正在尝试使用scipy.stats.linregress()进行线性回归。但是,当我运行我的脚本时,我收到错误消息

AttributeError: 'module' object has no attribute 'stats'*

我正在使用Anaconda python 2.7发行版,在其文档中说要安装模块。 Anaconda documentation

在python交互式解释器中,我可以导入scipy模块,但无法找到统计信息。当我查看__version__0.14时,应该有统计模块..

我真的无法猜到为什么统计数据不可用..

2 个答案:

答案 0 :(得分:5)

此错误:

AttributeError: 'module' object has no attribute 'stats'

意味着它的意思。 stats模块中没有名为scipy的属性。

不是因为磁盘上不存在这样的东西,而是因为没有导入过这样的东西 - 因为你甚至都没想过导入它。

scipy是一个包。正如the Python tutorial所解释的那样,导入包不会导入其所有子模块。

一些软件包有__init.py__自动导入部分或全部软件包。*但这对scipy来说不是一个好主意,因为它们有很多,所以导入所有这些都需要一些时间,通常在给定的项目中只需要一两个。

所以,你只需要这样做:

import scipy.stats

*还有一些案例如os伪造成包但不是,所以你可以使用os.path而无需导入它,或像pyobjc那样创建模块的特殊占位符对象,在首次访问时自动导入实际模块。

答案 1 :(得分:1)

导入scipy而不是scipy.stats时出现同样的错误。你试过吗

import scipy.stats
scipy.stats.linregress()