模块“scipy.stats”没有属性“norm”

Module 'scipy.stats' has no attribute 'norm'

提问人:ampersander 提问时间:11/16/2023 最后编辑:ampersander 更新时间:11/16/2023 访问量:65

问:

我有一个非常简单的最小示例:

import scipy.stats

CRV = scipy.stats.norm

该代码在我的 Jupyter Notebook 中给了我一个错误:

AttributeError: module 'scipy.stats' has no attribute 'norm'

我尝试了多种方法:重新安装 scipy,然后重新安装 anaconda,这种情况一直在发生。我不确定会出什么问题,我的 Scipy 在 1.11.1 上。

编辑:

我运行了以下代码:

print(scipy.__path__)
print(scipy.stats.__path__)

并得到以下结果:

_NamespacePath(['C:\\Users\\user1\\anaconda3\\envs\\project\\lib\\site-packages\\scipy'])
_NamespacePath(['C:\\Users\\user1\\anaconda3\\envs\\project\\lib\\site-packages\\scipy\\stats'])
Python jupyter-notebook scipy anaconda

评论

0赞 Brian61354270 11/16/2023
显示什么?print(scipy.stats)
0赞 ampersander 11/16/2023
@Brian61354270它说的<module 'scipy.stats' (<_frozen_importlib_external._NamespaceLoader object at 0x000001E1B2AAB880>)>
0赞 Brian61354270 11/16/2023
这意味着这是一个命名空间包。 scipy v1.11.1 中的实际 scipy.stats 模块不是命名空间包。您的导入路径上有一个名为 somewhere 的目录吗?什么和显示?scipy.statsscipyprint(scipy.stats.__path__)print(scipy.__path__)
0赞 ampersander 11/16/2023
@Brian61354270 print(scipy) 显示 .我不完全确定如何以及在哪里检查导入路径,但奇怪的是,我尝试了 changin 环境(每个环境都应该有自己的导入,不是吗?),但它仍然不起作用。<module 'scipy' (<_frozen_importlib_external._NamespaceLoader object at 0x000001E1B4CE6BF0>)>
0赞 Brian61354270 11/16/2023
我在发表评论后编辑了该命令。你能显示修改后的打印件的输出吗?另外,请将这些打印件的输出添加到问题中并进行编辑

答:

-1赞 SuperPomax 11/16/2023 #1

我尝试的第一件事是检查 pip 版本并确保它与我正在编译代码的 python 版本相对应。例如,如果 pip 或 python 指向 python2,而另一个指向 python3。

pip --version
python --version

我会尝试的第二件事是使用 .pyenv。不使用 .pyenv 时,我在模块导入方面遇到了一些奇怪的问题

第三件事,我会尝试另一个版本的 python。由于 python 3.12 是最近的主要版本,因此在 python 中进行了一些重要的更改,这可能会导致问题。最近,在特定架构上查找特定错误的时间较少。

评论

0赞 Brian61354270 11/16/2023
欢迎来到 StackOverflow!请注意,答案框只能用于对原始问题的完整回答,不需要提问者澄清。推测性的答案在本网站上不被认为是有帮助的。如果您认为需要更多信息才能正确回答此问题,您可以使用评论请求澄清(一旦您有足够的声誉)。
0赞 Brian61354270 11/16/2023
FWIW,Scipy 自 1.11.0rc1 版本以来一直支持 Python 3.12(预发行版)。Python 3.12 自 2023 年 5 月以来一直处于功能稳定状态。
0赞 SuperPomax 11/16/2023
您好,感谢您的热烈欢迎。正如你所指出的,我没有对这篇文章发表评论的声誉(如果我立即被否决,我不会很快得到它)。其次,我给出了 3 个答案,这些答案可以解决当前描述的问题,或者至少可以帮助其他有类似问题的人。我已经将我的答案重新表述为提供建议,而不是提出问题并给出为什么它可能很糟糕。