这是一组旨在澄清事物,帮助更好理解的问题集,而不是我遇到的问题。
如果我记错了或者这些问题以前已经被回答过,我在这里道歉。
首先,我想要澄清的问题是:
假设:
首先,我注意到通常情况下,您不能通过导入包并尝试访问package.module来访问包中的模块。
例如,scipy.io。
通常需要执行import package.module甚至是import astropy.io.fits,或者可以使用from package import module。
我的问题是为什么会这样,为什么它如此随机-取决于包?我似乎无法确定任何稳定的模式。这是因为一些库(包)非常大,为了避免内存问题而只导入核心属性/模块吗?
第二个问题:
它涉及实际检查这些包的大小。是否有任何方法在导入时查看它们的大小?除了尝试之外,还有其他方法可以知道哪些将起作用,哪些不会?我想我可以使用sys.modules进行检查并尝试从那里获得它?
第三个也是最后一个问题:
在我不在树莓派上运行代码并且不必担心内存问题的情况下(如果这是他们不允许直接访问的原因),是否有任何导入包的方法,使其还加载所有子包?
我只是懒惰地想知道是否可能。 我知道这不是好的实践方法,但好奇心害死猫。
只是为了更新并使人们能够查看我所查看的相关问题:
这个答案提供了关于良好一般实践的好建议: Python导入的良好经验法则是什么? 为什么我不能使用scipy.io?就像文档解释的那样,子包为什么不被导入。
然后显然有文档: https://docs.python.org/3/reference/import.html#packages 5.2.1节就是
这个问题实际上与我的问题类似,但似乎没有明确的答案。 Python复杂子包导入 问题的状态:
问题1:回答中的好理由
问题2:待定
问题3:待定
如果我记错了或者这些问题以前已经被回答过,我在这里道歉。
首先,我想要澄清的问题是:
假设:
import scipy
首先,我注意到通常情况下,您不能通过导入包并尝试访问package.module来访问包中的模块。
例如,scipy.io。
通常需要执行import package.module甚至是import astropy.io.fits,或者可以使用from package import module。
我的问题是为什么会这样,为什么它如此随机-取决于包?我似乎无法确定任何稳定的模式。这是因为一些库(包)非常大,为了避免内存问题而只导入核心属性/模块吗?
第二个问题:
它涉及实际检查这些包的大小。是否有任何方法在导入时查看它们的大小?除了尝试之外,还有其他方法可以知道哪些将起作用,哪些不会?我想我可以使用sys.modules进行检查并尝试从那里获得它?
第三个也是最后一个问题:
在我不在树莓派上运行代码并且不必担心内存问题的情况下(如果这是他们不允许直接访问的原因),是否有任何导入包的方法,使其还加载所有子包?
我只是懒惰地想知道是否可能。 我知道这不是好的实践方法,但好奇心害死猫。
只是为了更新并使人们能够查看我所查看的相关问题:
这个答案提供了关于良好一般实践的好建议: Python导入的良好经验法则是什么? 为什么我不能使用scipy.io?就像文档解释的那样,子包为什么不被导入。
然后显然有文档: https://docs.python.org/3/reference/import.html#packages 5.2.1节就是
import scipy
不会也import scipy.io
的原因,但我想知道为什么开发人员不将其自动化处理。这个问题实际上与我的问题类似,但似乎没有明确的答案。 Python复杂子包导入 问题的状态:
问题1:回答中的好理由
问题2:待定
问题3:待定