我有一个 python 文件,其中包含使用 numpy 函数的脚本。
我以为 IPython 已经加载了 numpy,所以我没有在文件中导入 numpy,当我这样做时:
%run my_python_file.py
由于来自 的未知功能,它失败了numpy
。
所以,我的问题是:
有没有办法使用 IPython 已经导入的模块在 Python 文件中运行脚本?
非常感谢!
如果您在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]:
好吧,如果我理解正确,假设您正在运行 linux,您可以执行以下操作:
#!/usr/bin/ipython --pylab=tk
print(numpy.sin(0.5))
带有 #! 的行 向脚本指示用于运行它的程序(和选项),numpy 行只是一个示例,向您展示它的工作原理。您可能需要将 tk 替换为 Qt4 或类似的东西。
然后,您需要在此文件上运行命令 chmod +x(假设您在 unix 机器上)以使其可执行并运行它。
真正的问题是为什么不直接在脚本中导入 numpy?如果您解释说,也许我们可以帮助您找到解决问题的最佳方法。
%import numpy
%run my_python_file.py
或者我误解了你的问题。