4

初始化 python 解释器时如何打印问候消息?例如,如果我要使用自定义预定义变量初始化 python 解释器,我如何向用户宣传这些变量?

4

2 回答 2

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)。

于 2015-05-06T17:43:56.040 回答
0

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

如果要使用 Python 的内置控制台,请传递banner参数。假设您有要注入的变量字典:

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

使用 IPython 的控制台,通过banner1.

from IPython import embed
embed(banner1=message, user_ns={'hello': 'world'})
于 2015-05-06T17:45:04.993 回答