初始化python解释器时如何打印问候语?例如,如果我去initialize a python interpreter with custom pre-defined variables,我该如何向用户宣传这些变量?
答案 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'})