dsi*_*cha 100 python interactive
有没有办法以编程方式强制Python脚本在其执行的任意点放入REPL,即使脚本是从命令行启动的?
我正在编写一个快速而肮脏的绘图程序,我想从stdin或文件中读取数据,绘制它,然后放入REPL以允许自定义绘图.
Jas*_*mbs 118
我经常使用这个:
def interact():
import code
code.InteractiveConsole(locals=globals()).interact()
Run Code Online (Sandbox Code Playgroud)
Ale*_*lex 96
您可以尝试使用python的交互选项:
python -i program.py
Run Code Online (Sandbox Code Playgroud)
这将执行program.py中的代码,然后转到REPL.您在program.py顶级定义或导入的任何内容都将可用.
joe*_*ker 42
这是你应该怎么做(IPython> v0.11):
import IPython
IPython.embed()
Run Code Online (Sandbox Code Playgroud)
对于IPython <= v0.11:
from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell() # this call anywhere in your program will start IPython
Run Code Online (Sandbox Code Playgroud)
你应该使用IPython,Python REPLs的凯迪拉克.见http://ipython.org/ipython-doc/stable/interactive/reference.html#embedding-ipython
从文档:
它在科学计算情况下也很有用,在这种情况下,通常需要做一些自动的,计算密集的部分然后停下来查看数据,图表等.打开IPython实例将使您可以完全访问您的数据和函数,完成交互式部分后,您可以恢复程序执行(可能会在以后再次停止,根据需要多次停止).
Ned*_*der 17
您可以启动调试器:
import pdb;pdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
不确定你想要什么REPL,但调试器非常相似.
blu*_*zcz 17
要使用iPython和调试器的功能,你应该使用ipdb,
您可以像使用pdb一样使用它,并添加:
import ipdb
ipdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37127 次 |
最近记录: |