如何将Python脚本发送到IPython或在IPython中运行Python脚本而不导入numpy

时间:2012-08-20 22:24:23

标签: python vim ipython

我有一个python文件,其中包含使用numpy函数的脚本。

我认为IPython已经加载了numpy,所以当我这样做时,我没有在文件中导入numpy:

%run my_python_file.py 

由于来自numpy的未知函数,它失败了。

所以,我的问题是:

有没有办法在Python文件中使用已经由IPython导入的模块运行脚本?

非常感谢!

3 个答案:

答案 0 :(得分:5)

如果你在 numpy -pylab 交互式shell中,请使用

run -i script.py

你在问什么。它具有在python脚本中保留(或覆盖)任何全局变量的副作用。基本上,ipython就像你手动输入文件一样。

执行此操作的最有用的原因可能是您还可以引用在ipython会话中创建的其他变量,例如,在脚本运行之间手动更改它们。

对于一个简单的例子,如果script.py是

AA = np.array([[1,2],[3, myVar]])
print AA

然后在ipython中你可以

In [1]: myVar = 7
In [2]: run -i script.py
[[1 2]
 [3 7]]
In [3]: myVar = 17
In [4]: run -i script.py
[[ 1  2]
 [ 3 17]]
In [5]: 

答案 1 :(得分:1)

好吧,如果我理解正确,假设你正在运行linux,你可以这样做:

#!/usr/bin/ipython --pylab=tk
print(numpy.sin(0.5))

#行!向脚本指示用于运行它的程序(和选项)以及numpy行只是一个示例,向您展示它的工作原理。您可能需要将Qk替换为Qt4或类似的东西。

然后你需要在这个文件上运行命令chmod + x(假设你在unix机器上),使它可执行并运行它。

真正的问题是为什么不在你的脚本中导入numpy?如果您解释一下,或许我们可以帮助您找到解决问题的最佳方案。

答案 2 :(得分:0)

%import numpy
%run my_python_file.py 

或者我误解了你的问题。

相关问题