我有一个包含使用numpy函数的Python文件。
我认为IPython已经加载了numpy,所以在文件中没有导入numpy,当我执行以下操作时:
%run my_python_file.py
由于缺少 numpy
中的未知函数,它失败了。
所以,我的问题是:
有没有一种方法可以在已经由 IPython 导入模块的情况下运行 Python 文件中的脚本?
非常感谢!
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
或者我误解了你的问题。
my_script.py
中编写脚本,运行ipython --pylab=tk
,然后输入from my_script import *
。 - behnam