使用变量初始化解释器
Initialize interpreter with variables
如何初始化 python 解释器,使其内存中已有变量?例如,我如何初始化一个 [n i]Python 解释器,并输入我的第一个输入:
In [1]: today
Out[1]: '2015-05-05 17:49:32.726496'
没有先绑定名字 str(today = datetime.datetime.today())
?
您可以创建一个包含您的 "setup" 代码的脚本,然后执行它并进入交互模式。
例如:
# 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 中的脚本,让您可以访问那里定义的所有内容。
除了其他答案之外,您还可以像这样明确地进入交互模式:
// setup.py
import code, datetime
today = datetime.datetime.today()
code.interact(local=locals())
正常执行
python setup.py
标准 Python 解释器有三个选项:
python -i setup.py
, as explained in
- 从
setup.py
进入交互模式,如 中所述
- 设置环境变量
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. You can build a dozen different profiles, and edit each one to enable and disable the use of -i
and PYTHONSTARTUP
, change PYTHONSTARTUP
to use a different variable name, execute various lines of code each time a kernel is started, and so on. Most of what you want is under Terminal IPython options,如果你在终端使用它。
如果您正在使用 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)
如何初始化 python 解释器,使其内存中已有变量?例如,我如何初始化一个 [n i]Python 解释器,并输入我的第一个输入:
In [1]: today
Out[1]: '2015-05-05 17:49:32.726496'
没有先绑定名字 str(today = datetime.datetime.today())
?
您可以创建一个包含您的 "setup" 代码的脚本,然后执行它并进入交互模式。
例如:
# 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 中的脚本,让您可以访问那里定义的所有内容。
除了其他答案之外,您还可以像这样明确地进入交互模式:
// setup.py
import code, datetime
today = datetime.datetime.today()
code.interact(local=locals())
正常执行
python setup.py
标准 Python 解释器有三个选项:
python -i setup.py
, as explained in- 从
setup.py
进入交互模式,如 中所述
- 设置环境变量
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. You can build a dozen different profiles, and edit each one to enable and disable the use of -i
and PYTHONSTARTUP
, change PYTHONSTARTUP
to use a different variable name, execute various lines of code each time a kernel is started, and so on. Most of what you want is under Terminal IPython options,如果你在终端使用它。
如果您正在使用 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)