anaconda和Spider中的包加载错误

时间:2017-05-19 00:38:49

标签: python numpy web-crawler ipython anaconda

我在Anaconda 4.3.1的Spider 3.1.4中编辑了三个python 2.7文件

(1). TestClass.py :Just define a class 
import numpy as np
class TestClass:
    def getArray(self):
        return np.zeros((3,4));
(2). a1.py
from TestClass import *;
tt=TestClass();

(3). a2.py
#just a empty python file

当我" runfile" " a1.py"在Spider中,创建了一个TestClass实例tt,并在Spider的IPython控制台中运行以下代码:

>>>tt.getArray()
Out[9]: 
array([[ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]])

它工作正常,但在我在Spider中运行文件a2.py(一个空文件)后,我重新运行" tt.getArray()"在Spider的IPython控制台中,出现错误:

tt.getArray()
Traceback (most recent call last):

  File "<ipython-input-11-50cc0c83ed77>", line 1, in <module>
    tt.getArray()

  File "TestClass.py", line 6, in getArray
    return np.zeros((3,4));

AttributeError: 'NoneType' object has no attribute 'zeros'
根据我的经验,numpy失踪了,任何&#34; runfile&#34;蜘蛛中的操作员会导致丢失numpy。关于&#34; tt&#34;的任何代码无法在a2.py中写入,因为在运行新文件时缺少已导入的导入包。   这是一个错误吗?或Spder,Ipython需要进一步配置或设置参数?或者&#34; runfile&#34;蜘蛛中的命令需要额外的参数吗?

我已经厌倦了这个错误,请告诉我哪里出错了。

1 个答案:

答案 0 :(得分:0)

&#34;蜘蛛&#34;是&#34; Spyder&#34;我拼错了。

Spyder是anaconda的开发环境

因为Spyder有&#34;用户模块重新加载(UMR)&#34;财产,我们&#34; runfile&#34;函数运行一个脚本,Spyder将重新加载所有用户创建的模块。

在我的环境中,Spyder重新加载TestClass但没有重新加载numpy,并且卸载了TestClass有界numpy,所以&#34; runfile&#34;可能导致用户模块无效。

In&#34;工具 - &gt;偏好设置 - &gt; Python解释器&#34;我们可以关闭UMR