如何初始化 python 解释器,使其内存中已经有变量?例如,我如何初始化一个 [ni]Python 解释器,并输入我的第一个输入:
In [1]: today
Out[1]: '2015-05-05 17:49:32.726496'
没有先绑定名字str(today = datetime.datetime.today())
?
如何初始化 python 解释器,使其内存中已经有变量?例如,我如何初始化一个 [ni]Python 解释器,并输入我的第一个输入:
In [1]: today
Out[1]: '2015-05-05 17:49:32.726496'
没有先绑定名字str(today = datetime.datetime.today())
?
除了其他答案之外,您还可以像这样显式地进入交互模式:
// setup.py
import code, datetime
today = datetime.datetime.today()
code.interact(local=locals())
正常执行
python setup.py
标准 Python 解释器有三个选项:
python -i setup.py
,正如tzaman 的回答中所解释的那样setup.py
如Jordan P的回答中所述,从内部进入交互模式PYTHONSTARTUP=setup.py
。如果你想启动和停止 Python 数百次,最后一个很有用。只要export PYTHONSTARTUP=setup.py
你在同一个 shell 中,它总是会加载setup.py
. 或者,如果您希望它更永久,请将其放入您的配置文件(或 Windows 系统控制面板环境变量或其他)中。
PYTHONSTARTUP
virtualenvwrapper
和它的post_activate
挂钩特别方便。只需将钩子设置为export PYTHONSTARTUP=${VIRTUAL_ENV}/setup.py
,您就可以为每个环境进行不同的设置。
实际上,-i
实际上所做的是PYTHONSTARTUP
用一次性临时值覆盖。
IPython 有自己非常强大(但有些复杂)的配置和定制系统。您可以构建十几个不同的配置文件,并编辑每个配置文件以启用和禁用-i
and PYTHONSTARTUP
,更改PYTHONSTARTUP
为使用不同的变量名称,每次启动内核时执行不同的代码行,等等。如果您在终端上使用它,您想要的大部分内容都在Terminal IPython options下。
您可以创建一个包含“设置”代码的脚本,然后执行它并进入交互模式。
例如:
# 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 中运行该脚本,让您可以访问那里定义的所有内容。
如果您使用的是 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)