Spyder IDE 和 Python 解释器的编译差异

Compilation difference in Spyder IDE and Python intrepeter

这个问题可能看起来有点奇怪,但是一段时间前(大约 1-2 周)我写了一个 Python 脚本,我测试了它并且一切正常。今天,当我从后一个脚本中提取行时,这些行将 运行 在 Spyder IDE Python 控制台中没有任何错误,但是当我尝试将这些相同的行放在新的 .py 文件,Spyder 给我错误!

所以我尝试再次编译旧脚本,然后我得到了错误!

举几个例子来说明问题:

  1. 我使用 PIL 图像加载和图像:im = Image.open("test.jpg")
    然后在 Spyder 控制台中,我可以这样做: im.layers 这会给我颜色通道的数量。即使 PIL 图像文档中不存在此属性!
    但是在 python 文件中使用相同的属性会出错!
  2. 使用:a = array( [ [ 1, 2, 3], [4, 5, 6], [...] ] ) 我可以创建一个二维数组(或矩阵)。这可以通过 Spyder 实现,但不是常规的 Python 解释器(这会导致 NameError: global name 'array' is not defined )!

还有一些这样的例子。

任何人都可以帮助我了解发生了什么,知道我是一个 Python 菜鸟吗?

Python 版本:2.7.6 |海湾合作委员会 4.8.2 |蜘蛛 2.2.5

Spyder 2.2.5 是旧版本(最新版本是 2.3.4)。当它启动时自动导入 numpy 和 matplotlib。常规 Python 解释器需要显式 import numpy as np 才能定义数组 A=np.array([[1,2,3], [4,5,6]])