【发布时间】:2015-01-22 21:52:59
【问题描述】:
我正在编写一个我知道我会在 Ipython 中运行的脚本。
我以 ipython --pylab 启动 Ipython。
这会导入 numpy、matplotlib 等。
那么我是否必须在我的脚本中再次指定这些导入语句?
我没有,我的脚本没有运行。
感谢您的帮助。
【问题讨论】:
-
试试
%run -i选项。
标签: numpy matplotlib import ipython
我正在编写一个我知道我会在 Ipython 中运行的脚本。
我以 ipython --pylab 启动 Ipython。
这会导入 numpy、matplotlib 等。
那么我是否必须在我的脚本中再次指定这些导入语句?
我没有,我的脚本没有运行。
感谢您的帮助。
【问题讨论】:
%run -i 选项。
标签: numpy matplotlib import ipython
--pylab 将numpy 导入为* 和np。我总是使用np. 来尽量减少混淆。
如果我在我的脚本中需要numpy,我会包含通常的import numpy as np 行。这让我可以从 shell 运行脚本。我也可以在IPython 中使用run ... 运行它。我也可以在 Ipython 或其他脚本中执行import。
我从未尝试过省略import numpy 行,而且我认为没有必要开始。它不会节省任何时间或空间。养成导入你需要的东西的习惯,不要以为环境会为你做。
您在 IPython 中定义和编辑的函数不需要它们自己的导入语句。
刚刚试过这个脚本:
def foo1(x):
return np.sum(x)
def foo2(x):
return x.sum()
显然我可以使用“运行”来加载它。而foo2(np.array([1,2,3])) 之所以有效,是因为数组使用了自己的方法。但是foo1 会产生NameError: global name 'np' is not defined。
【讨论】: