动态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 覆盖它
将 <site-packages>/pygnurl/modules 添加到您的 PYTHONPATH 环境变量中
使用 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 仓库
替代方案
readline - 标准库的一部分。Python 在 Mac OS X 上可能使用 libedit 而不是 GNU Readline,必须相应地配置。
pyreadline - GNU readline 的 Python 实现。
gnureadline - 静态链接到 GNU readline 库的标准 Python readline 扩展。
rl - GNU Readline 的替代 Python 绑定。
prompt_toolkit - 用于在 Python 中构建强大交互式命令行的库。
平台 |
库 |
接口 |
|
---|---|---|---|
任何 |
动态 |
扩展 |
|
类 Unix |
静态 |
基本 |
|
Windows |
纯 Python |
基本 |
|
类 Unix |
静态 |
基本 |
|
类 Unix |
静态 |
扩展 |
|
任何 |
纯 Python |
替代 |
已知问题
IPython 终端的 ANSI 颜色代码无法打印。作为替代方案,代码被删除,并显示纯提示。
MinGW 的 libreadline6 使用箭头键时落后一个按键。这似乎与 Readline 回调接口有关。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。
源代码发行版
构建发行版
pygnurl-1.0.1.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8a3373c44ebfd554335a9f132d35680c442f0b837935bfab2b4cdc8f08ae9580 |
|
MD5 | 3debe3fb248d6e51176e4c16b17dcd29 |
|
BLAKE2b-256 | e6795d3e6302e5ba9f7efa451dc543d1e234b308d4fffca87780c50eaaaea714 |
pygnurl-1.0.1-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 49bacb9d735d14b0dc1da461c2fa458e8ca2f5649f0b964832a11c2ec75890cc |
|
MD5 | f67c989b007c0af99531ec6255acdabd |
|
BLAKE2b-256 | bdfdce5f63fd5ce08a12cc1c37eaee4828bd4837958afea72f887978b8e76445 |