【问题标题】:Do I have to specify import when Python script is being run in Ipython?在 Ipython 中运行 Python 脚本时是否必须指定导入?
【发布时间】:2015-01-22 21:52:59
【问题描述】:

我正在编写一个我知道我会在 Ipython 中运行的脚本。

我以 ipython --pylab 启动 Ipython。

这会导入 numpy、matplotlib 等。

那么我是否必须在我的脚本中再次指定这些导入语句?

我没有,我的脚本没有运行。

感谢您的帮助。

【问题讨论】:

  • 试试%run -i 选项。

标签: numpy matplotlib import ipython


【解决方案1】:

--pylabnumpy 导入为*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

【讨论】:

    猜你喜欢
    • 2017-09-15
    • 2011-03-12
    • 1970-01-01
    • 2012-07-29
    • 2019-07-29
    • 2015-06-15
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    相关资源
    最近更新 更多