问题描述
如果我运行以下两行代码:
import numpy
numpy.linalg
我没有收到错误,我得到了输出 <module 'numpy.linalg' from /Users/...>
。
但是,如果我运行以下两行代码
import scipy
scipy.linalg
我收到错误
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-7-7ed633b28ccc> in <module>
1 import scipy
----> 2 scipy.linalg
AttributeError: module 'scipy' has no attribute 'linalg'
但是,以下代码似乎可以正常工作:
import scipy.linalg
scipy.linalg
我的问题是:为什么导入 numpy
后,我可以使用 numpy.linalg
,但我不能对 scipy
执行相同的操作?
对于上下文,我使用的是 numpy 版本 1.19.2,我使用的是 scipy 版本 1.4.1。
解决方法
“numpy/__init__.py”中有一行,是模块初始化文件,显式导入linalg
:
from . import linalg
“scipy/__init__.py”中没有这样的行。这就是您必须自己导入 scipy.linalg
的原因。