Apple不readline
随OS X一起提供GNU 。它确实提供了BSD libedit,它包括一个readline
兼容接口。Apple发行的系统Python和python.org安装程序中的64位/ 32位Python都是使用构建的libedit
。问题在于所支持的命令与所支持的命令libedit
完全不同readline
(例如,请参见此处的讨论)。传统的仅32位python.org安装程序的确使用GNUreadline
,其他一些OS X的Python第三方分发程序也是如此,例如MacPorts。很有可能您以前使用的是这样的Python,而不是最近的Apple。你有几个选项,除了修改Django的:你可以安装第三方替代的ReadLine模块 或者您可以使用GNU readline附带的另一个Python。但是,您不应该在10.7上使用python.org仅32位的Python,因为不幸的是,10.7上的Xcode 4不再包括gcc-4.0
OS X 10.4u SDK,这些Python需要使用这些OS来构建和安装带有C扩展模块的软件包。
将以下内容放入python启动文件中,将为libedit界面和典型的readline模块启用制表符补全。有关python启动文件的更多信息
import readline
import rlcompleter
if 'libedit' in readline.__doc__:
readline.parse_and_bind("bind ^I rl_complete")
else:
readline.parse_and_bind("tab: complete")