是否可以在运行时启动Python解释器?

时间:2013-08-11 22:29:51

标签: python

我想知道Python脚本是否可以在运行时启动Python解释器,从而可以从解释器访问变量。

让我解释一下自己。假设我有以下脚本:

x = 20
LaunchInterpreter() #Imaginary way to launch the Interpreter

现在,解释器已启动,我们可以使用变量。

>>> x               #x defined value by the script
20
>>> x*x
400

2 个答案:

答案 0 :(得分:1)

如果您正在寻找动态解释器,可以使用pdb。它只是一个调试器,但应该仅用于此目的,但可以像下面这样使用;

x = 20
import pdb
pdb.set_trace()

现在您将拥有一名翻译,您可以使用变量。

我不知道这是否适合您的情况,但它是我能用所提供信息最接近的事情。

编辑1:

正如skishore的评论中所述,您也可以使用code.interact(local=locals())所以:

x = 20
import code
code.interact(local=locals())

答案 1 :(得分:0)

Python的-i命令行选项强制在脚本完成后启动命令解释程序:

python --help
usage: /Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
< ... >
-i     : inspect interactively after running script; forces a prompt even
         if stdin does not appear to be a terminal; also PYTHONINSPECT=x

所以给定一个包含以下内容的文件test.py:

x = 7
y = "a banana"

你可以使用-i选项启动python来完成你想要做的事情。

python -i test.py
>>> x
7
>>> y
'a banana'
>>>