当前位置: 首页 > 面试题库 >

python选项卡完成Mac OSX 10.7(Lion)

左丘嘉木
2023-03-14
问题内容

在升级到狮子之前,我已经通过终端在python
shell中完成了tab的工作。按照这些说明进行操作,可以使选项卡完成工作。

自从升级到Lion之后,我现在无法在Python的终端会话中完全完成Tab的工作。我已经按照上述指示操作,但仍然无法正常工作。

Lion中的readline模块有区别吗?连接到“
tab:complete”选项似乎不再起作用。我想知道是不是忽略readline的终端,还是python本身。

Python版本:2.7.1

编辑:

通过制表符完成,我的意思是我可以做以下事情:

# django
import MyModel
MyModel.objects.a[TAB] # will complete to all()

问题答案:

Apple不readline随OS X一起提供GNU 。它确实提供了BSD
libedit
,它包括一个readline兼容接口。Apple发行的系统Python和python.org安装程序中的64位/
32位Python都是使用构建的libedit。问题在于所支持的命令与所支持的命令libedit完全不同readline(例如,请参见此处的讨论)。传统的仅32位python.org安装程序的确使用GNU
readline,其他一些OS
X的Python第三方分发程序也是如此,例如MacPorts。很有可能您以前使用的是这样的Python,而不是最近的Apple。你有几个选项,除了修改Django的:你可以安装第三方替代的ReadLine模块
或者您可以使用GNU
readline附带的另一个Python。但是,您不应该在10.7上使用python.org仅32位的Python,因为不幸的是,10.7上的Xcode
4不再包括gcc-4.0OS 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")


 类似资料:
  • 问题内容: 如何在Python脚本中与Shell选项卡完成协作? 在.py文件上设置了可执行标志后,预期结果应类似于: 问题答案: 看看argcomplete由安德烈Kislyuk。 通过以下方式安装: 导入模块并在调用之前在源代码中添加一行: 并确保bash知道此脚本,请使用 您应该将该行放在您的代码中,或遵循argcomplete的文档并激活“全局”完成。 之后,您可以根据要求完成工作。 其工

  • 我正在使用C#创建PowerShell cmdlet。对于其中一个参数,我使用。 如何使的值出现在制表符完成列表中?

  • 我在docker上运行centos 8发行版,我希望使用package manager完成bash选项卡。根据其他帖子,我在docker容器启动后做了以下工作: 然后 这样做后,我重新启动容器,但仍然没有bash完成。我还试图通过以下方式直接获取bash完成文件: 但没有任何更好的效果。 你知道我做错了什么吗?

  • 两个tab <div class="ui-tab "> <ul class="ui-tab-nav ui-border-b "> <li class="current"><span>热门</span></li> <li><span>热门</span></li> </ul> <ul class="ui-tab-content" sty

  • 打开选项卡 打开新选项卡于 设置新的弹出窗口如何打开: 选项 描述 最后打开选项卡的窗口 在最后打开的窗口打开一个新的选项卡。 新窗口 打开一个新的窗口。 允许重复打开相同的对象 如果你想允许一个对象可打开多个实例,可勾选这个选项。 选项卡列样式 永远显示选项卡栏 打开窗口时显示标签栏。

  • 打开新选项卡于 设置新的弹出窗口如何打开: 选项 描述 主窗口 在主窗口中打开一个新的选项卡。 最后打开选项卡的窗口 在最后打开的窗口打开一个新的选项卡。如果没有任何已打开的窗口,会打开一个新的窗口。 新窗口 打开一个新的窗口。 启动画面 控制在启动 Navicat 时出现哪些选项卡: 选项 描述 仅打开对象选项卡 仅打开对象选项卡,没有其他选项卡。 从上次离开的画面继续 打开对象选项卡,并重新打