当我将 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,只是想开始并测试它。
Cheers
你的脚本,被命名numpy.py
,无意中导入了自身。由于模块级代码在导入时执行,因此导入行会使其运行,然后一旦导入完成,它会再次运行其余部分。
(一个解释 http://python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html#executing-the-main-module-twice关于为什么脚本可以导入自身)
建议:
- 将您的脚本重命名为除
numpy.py
- use the if __name__=='__main__' idiom https://stackoverflow.com/questions/419163/what-does-if-name-main-do(您应该始终在脚本中使用它)
除此之外,正如已经指出的,from numpy import *
强烈劝阻。要么使用import numpy
或常见的import numpy as np
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)