如何为Python shell添加标签补全?

143 投票
8 回答
103214 浏览
提问于 2025-04-11 09:31

当我用 python manage.py shell 启动一个 Django 应用时,我会得到一个互动控制台——我可以使用 Tab 键来补全命令等等。

Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)

但是如果我只是用 python 启动一个 Python 解释器,它就没有这个补全功能。

有人能告诉我 Django 是怎么做到让控制台变得互动的吗?或者我该怎么做才能在没有 Django 应用的情况下启动一个互动控制台呢?

8 个回答

27

为了说明这一点,这在教程中有讲解: http://docs.python.org/tutorial/interactive.html

35

我觉得Django做的事情有点像这个链接里说的内容。

如果你想要一个非常好用的交互式解释器,可以看看IPython

234

我可能找到了一种方法来实现这个。

首先,创建一个名为 .pythonrc 的文件。

# ~/.pythonrc
# enable syntax completion
try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

然后在你的 .bashrc 文件中,添加以下内容:

export PYTHONSTARTUP=~/.pythonrc

这样做似乎有效。

撰写回答