python:numpy运行脚本两次

时间:2015-02-20 10:57:38

标签: python linux numpy

当我将numpy导入我的python脚本时,脚本执行两次。 有人能告诉我如何阻止这一点,因为我的脚本中的所有内容都需要两倍的时间吗?

以下是一个例子:

#!/usr/bin/python2

from numpy import *

print 'test_start'

lines = open('test.file', 'r').readlines()
what=int(lines[0])+2
nsteps = len(lines)/what
atom_list=[]
for i in range(0,nsteps*what):
  atom_list.append(lines[i].split())

del atom_list[:]
print 'test_end'

输出是:

test_start
test_end
test_start
test_end

那么,我的脚本首先使用普通的python执行,然后再次使用numpy吗? 也许我应该说我还没有使用numpy而只是想开始测试它。

干杯

1 个答案:

答案 0 :(得分:4)

您的脚本名为numpy.py,无意中导入了自己。由于模块级代码在导入时会被执行,导入行会导致它运行,然后一旦imoprt完成,它就会再次运行其余代码。

An explanation关于脚本可以自行导入的原因)

建议:

  1. 将您的脚本重命名为numpy.py
  2. 以外的其他内容
  3. 使用if __name__=='__main__' idiom(您应该始终在脚本中使用它)
  4. 除此之外,正如已经指出的那样,强烈建议不要from numpy import *。使用import numpy或公共import numpy as np