3

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

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

%run my_python_file.py 

由于来自 的未知功能,它失败了numpy

所以,我的问题是:

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

非常感谢!

4

3 回答 3

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]: 
于 2012-08-20T22:50:32.723 回答
1

好吧,如果我理解正确,假设您正在运行 linux,您可以执行以下操作:

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

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

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

真正的问题是为什么不直接在脚本中导入 numpy?如果您解释说,也许我们可以帮助您找到解决问题的最佳方法。

于 2012-08-20T22:28:15.933 回答
0
%import numpy
%run my_python_file.py 

或者我误解了你的问题。

于 2012-08-21T01:25:56.560 回答