使用变量

时间:2015-05-06 00:53:07

标签: python ipython interpreter python-interactive

如何初始化python解释器,使其内存中已有变量?例如,我如何初始化[n i] Python解释器,并键入作为我的第一个输入:

In [1]: today
Out[1]: '2015-05-05 17:49:32.726496'

没有先绑定名称str(today = datetime.datetime.today())

4 个答案:

答案 0 :(得分:2)

您可以创建包含“设置”代码的脚本,然后执行该脚本并进入交互模式。

例如:

# foo.py
import datetime
today = datetime.datetime.today

使用以下命令运行:

python -i foo.py
>>> today
'2015-05-05 17:49:32.726496'

我相信IPython应该支持相同的选项。 IPython的另一个替代方案就是启动它,然后说:

In [1]: %run foo.py

将在您当前的shell中运行该脚本,使您可以访问其中定义的所有内容。

答案 1 :(得分:2)

除了另一个答案,你可以明确地进入这样的交互模式:

// setup.py
import code, datetime
today = datetime.datetime.today()
code.interact(local=locals())

正常执行

python setup.py

答案 2 :(得分:2)

标准Python解释器有三个选项:

如果您想要启动和停止Python数百次,那么最后一个是有用的。只需export PYTHONSTARTUP=setup.py,只要您在同一个shell中,它就会始终加载setup.py。或者,如果您希望它更永久,请将其放在您的配置文件(或Windows系统控制面板环境变量或其他)中。

PYTHONSTARTUPvirtualenvwrapper及其post_activate钩子特别方便。只需将钩子设置为export PYTHONSTARTUP=${VIRTUAL_ENV}/setup.py,您就可以为每个环境设置不同的设置。

事实上,-i实际上做的是用一次性临时值覆盖PYTHONSTARTUP

IPython有自己非常强大的(但有些复杂)configuration and customization system。您可以构建十几个不同的配置文件,并编辑每个配置文件以启用和禁用-iPYTHONSTARTUP的使用,更改PYTHONSTARTUP以使用不同的变量名称,每个执行各种代码行内核启动的时间,等等。如果您在终端使用它,那么您想要的大多数都在Terminal IPython options下。

答案 3 :(得分:1)

如果您使用的是ipython,则可以将其配置为自动加载脚本。

运行

$ ipython profile create

将在您的主目录中创建默认配置文件。

创建名为~/.ipython/ipython_init.py的文件并添加

import datetime
today = datetime.datetime.today

现在在~/.ipython/profile_default/ipython_config.py的末尾,添加此行,以便每次解释器启动时都会加载该文件

c.InteractiveShellApp.exec_files = ['~/.ipython/ipython_init.py']

下次启动ipython shell时,您可以访问这些变量。

In [1]: today
Out[1]: datetime.datetime(2017, 3, 2, 13, 31, 26, 776744)