如何初始化python解释器,使其内存中已有变量?例如,我如何初始化[n i] Python解释器,并键入作为我的第一个输入:
In [1]: today
Out[1]: '2015-05-05 17:49:32.726496'
没有先绑定名称str(today = datetime.datetime.today())
?
答案 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 -i setup.py
,如tzaman's answer setup.py
内部进入交互模式,如Jordan P's answer 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有自己非常强大的(但有些复杂)configuration and customization system。您可以构建十几个不同的配置文件,并编辑每个配置文件以启用和禁用-i
和PYTHONSTARTUP
的使用,更改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)