问题描述
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 (将#修改为@)