输入python口译员时打印问候语

时间:2015-05-06 17:35:51

标签: python ipython interpreter python-interactive

初始化python解释器时如何打印问候语?例如,如果我去initialize a python interpreter with custom pre-defined variables,我该如何向用户宣传这些变量?

2 个答案:

答案 0 :(得分:5)

有一个名为PYTHONSTARTUP的环境变量,它描述了在Python shell调用时要执行的Python文件的路径。该脚本可以包含在调用时执行的普通Python代码,因此可以包含变量,打印或其他任何您想要的代码。它可以在你的〜/ .bashrc

中设置
export PYTHONSTARTUP="$HOME/.pythonrc"

然后自己创建文件

cat > ~/.pythonrc << EOF
print 'Hello World!'
EOF

启动python时的输出看起来有点像

Python 2.7.8 (default, Oct 19 2014, 16:02:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Hello World!
>>>

因为它是一个普通的Python文件,所以设置变量并显示它们/宣布可用性可以这样做:

foo = 'Hello'
bar = 12.4123

print 'The following variables are available for use\nfoo: {}\nbar: {}'.format(foo, bar)

调用Python repl和打印变量foo时的输出:

Python 2.7.8 (default, Oct 19 2014, 16:02:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
The following variables are available for use
foo: Hello
bar: 12.4123
>>> print foo
Hello

iPython在某种意义上表现不同,它不会执行您的PYTHONSTARTUP文件,但它拥有自己的称为配置文件的机制。可以在~/.ipython/profile_default/startup/中修改默认配置文件,其中每个*.py*.ipy文件都已执行(请参阅~/.ipython/profile_default/startup/README)。

答案 1 :(得分:0)

您可以使用内置控制台或IPython控制台从脚本嵌入控制台。

如果要使用Python的内置console,请传递banner参数。假设你有一个要注入的变量字典:

from code import interact
vars = {'hello': 'world'}
message = 'Extra vars: {}'.format(', '.join(vars))
interact(banner=message, local={'hello': 'world'})

使用IPython的console,传递banner1

from IPython import embed
embed(banner1=message, user_ns={'hello': 'world'})