Spyder自动导入子模块

时间:2017-02-15 11:54:35

标签: python spyder

此代码在我拥有的所有Python环境中都失败,但在Spyder中没有:

import scipy
print(scipy.integrate.cumtrapz([1, 2, 3]))

在大多数环境中,你会得到

AttributeError: module 'scipy' has no attribute 'integrate'

除非你import scipy.integrate导入了子模块,但不知何故,在Spyder中,如果你使用“在当前Python或IPython控制台中执行”运行配置,这段代码运行时没有错误。如果您使用“在新的专用Python控制台中执行”,它将失败。显然,Spyder正在做一些自动导入子模块的事情,但我无法在任何地方找到这种行为。

问题是Spyder正在做的事情,在哪里记录下来,我该如何关闭它。

环境:Anaconda 3(4.3.0),Spyder 3.1.2,Python 3.5

1 个答案:

答案 0 :(得分:1)

您可以从IPython控制台切换到Python控制台(它是一个不同的选项卡)。问题是IPython在不同模式下(即“matplotlib”模式)加载了很多东西,这些东西加载了很多东西。基本上不可能控制它。

enter image description here

但是有一些方法可以修改Tools -> Preferences -> IPython console下的IPython启动,但我不确定你是否可以在那里禁用SciPy导入。