Numpy 子模块导入不出现

问题描述

不久前我问了 this 个问题,从那时起我一直试图解决它。

Tl;dr 我想要一种将外部包导入到我自己的方法中,而无需将所有这些导入作为可以从包内的模块调用函数/模块/包出现在我的 Ipython 控制台中。

为了做到这一点,我研究了一些完善的 Python 包是如何被考虑的,这让我开始研究 Numpy。

在我的包中,如果我需要来自 Numpy 的某些功能,我要么将其导入到我需要的模块中,要么将其添加到相应的 __init__.py 文件中。它完成了工作,但出现了上述问题。

然而,Numpy 并非如此。以子包 linalg 为例。它从 numpy.core 导入了很多函数,但如果我输入

,它们都不会出现
numpy.linalg.

在 Spyder 内的 Ipython 控制台中。唯一出现的是变量中指定的那些

__all__ = ['matrix_power','solve','tensorsolve','tensorinv','inv','cholesky','eigvals','eigvalsh','pinv','slogdet','det','svd','eig','eigh','lstsq','norm','qr','cond','matrix_rank','LinAlgError','multi_dot']

所以我对自己想,如果我在我的模块中添加一个 __all__ 变量并仅使用我想要的变量初始化它应该可以解决问题。它没有,Numpy 导入仍然出现。

让我感到困惑的是,据我所知,在 Scipy 包中,如果我检查模块 scipy.linalg.basic,它会导入 Numpy,并且在我输入时出现

scipy.linalg.basic.

与模块中编写的函数一起进入 Ipython 控制台。

因此,与 Scipy 和我自己的包相比,Numpy 处理的方式有所不同,我不知道它是什么。有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)