2

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

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

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

4

4 回答 4

3

除了其他答案之外,您还可以像这样显式地进入交互模式:

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

正常执行

python setup.py
于 2015-05-06T01:04:15.207 回答
3

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

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

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

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


IPython 有自己非常强大(但有些复杂)的配置和定制系统。您可以构建十几个不同的配置文件,并编辑每个配置文件以启用和禁用-iand PYTHONSTARTUP,更改PYTHONSTARTUP为使用不同的变量名称,每次启动内核时执行不同的代码行,等等。如果您在终端上使用它,您想要的大部分内容都在Terminal IPython options下。

于 2015-05-06T01:08:09.863 回答
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 中运行该脚本,让您可以访问那里定义的所有内容。

于 2015-05-06T01:01:39.900 回答
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)
于 2017-03-02T08:00:13.103 回答