如何解决Numpy 子模块导入不出现
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 举报,一经查实,本站将立刻删除。