跳转到主要内容

动态GNU Readline接口

项目描述

pygnurl是一个动态的GNU Readline接口。它提供

  • 一个类似于rl的Pythonic接口,易于使用

  • 一个用于自定义可绑定函数的接口

  • 一个用于现有代码的readline兼容层

如果你特别想从你的Python程序中使用GNU Readline,你应该使用pygnurl。如果你只是寻找帮助构建命令行界面的工具,你可能更喜欢prompt_toolkit

需求

pygnurl动态加载一个Readline库,所以你需要一个与你的Python解释器架构匹配的版本(不一定是你的系统)。

Linux用户应该已经将Readline作为标准库的一部分。 pygnurl默认使用这个版本。

Windows用户可以从gnuwin32获取预构建的32位Readline DLL。

有关获取Readline的更多信息,请参阅Readline主页

快速入门指南

使用pip install pygnurl安装pygnurl

将环境变量 PYGNURL_LIB 设置为您的 Readline 库文件名。这将按照系统的共享库搜索顺序规则进行加载。(Linux 用户可以跳过此步骤,使用系统版本)。

如果您的 Python 版本已经包含了 readline 模块,您需要执行以下操作之一来让 pygnurl 覆盖它

  1. <site-packages>/pygnurl/modules 添加到您的 PYTHONPATH 环境变量中

  2. 使用 easy_install 而不是 pip 进行安装

如果您使用的是 Python 3.4 或更高版本,自动为您设置完成和历史记录。如果您使用的是较旧版本,您需要自己设置。

>>> import rlcompleter
>>> import readline
>>> readline.parse_and_bind('tab: complete')
>>> r<tab><tab>

示例

pygnurl/examples/startup.py - 一个适合日常使用的示例启动文件。将环境变量 PYTHONSTARTUP 指向此文件,以便在解释器中自动获得制表符完成和保存的历史记录。(如果您使用的是 Python 3.4 或更高版本,则不需要使用此示例。)

pygnurl/examples/functions.py - 一个展示自定义可绑定命令的示例启动文件。您还必须使用此文件与 PYTHONSTARTUP 环境变量一起使用。运行 help(pygnurl.examples.functions) 获取更多信息。

pygnurl/examples/mycmd.py - 一个简单的命令行,展示了制表符完成的特性。根据您的本地文件系统完成 cat 的参数。

动机

pygnurl 的目标是提供跨所有平台的全功能 GNU Readline 支持,无需编译开销。任何预构建的 Readline 库都应能够直接使用,无需代码修改。如果需要,可以在 Python 中而不是在 C 中实现版本或平台特定的兼容性修复。

开发

有关源代码、问题和错误报告,请访问 GitHub 仓库

https://github.com/evanunderscore/pygnurl

替代方案

readline - 标准库的一部分。Python 在 Mac OS X 上可能使用 libedit 而不是 GNU Readline,必须相应地配置。

pyreadline - GNU readline 的 Python 实现。

gnureadline - 静态链接到 GNU readline 库的标准 Python readline 扩展。

rl - GNU Readline 的替代 Python 绑定。

prompt_toolkit - 用于在 Python 中构建强大交互式命令行的库。

平台

接口

pygnurl

任何

动态

扩展

readline

类 Unix

静态

基本

pyreadline

Windows

纯 Python

基本

gnureadline

类 Unix

静态

基本

rl

类 Unix

静态

扩展

prompt_toolkit

任何

纯 Python

替代

已知问题

  • IPython 终端的 ANSI 颜色代码无法打印。作为替代方案,代码被删除,并显示纯提示。

  • MinGW 的 libreadline6 使用箭头键时落后一个按键。这似乎与 Readline 回调接口有关。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源代码发行版

pygnurl-1.0.1.zip (36.6 kB 查看哈希值)

上传时间: 源代码

构建发行版

pygnurl-1.0.1-py2.py3-none-any.whl (26.1 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下机构支持